From 4aea781e800b6e8c3aad101763855fc1738753a0 Mon Sep 17 00:00:00 2001 From: Gabriele Cosmo Date: Thu, 9 Jun 2016 10:28:22 +0200 Subject: [PATCH] Import Geant4 5.2.0 source tree --- ReleaseNotes/Patch4.4.0-1.txt | 9 +- ReleaseNotes/Patch4.4.0-2.txt | 9 +- ReleaseNotes/Patch4.4.1-1.txt | 8 +- ReleaseNotes/Patch4.5.0-1.txt | 8 +- ReleaseNotes/Patch4.5.1-1.txt | 64 + ReleaseNotes/ReleaseNotes4.0.1.txt | 20 +- ReleaseNotes/ReleaseNotes4.1.0.txt | 14 +- ReleaseNotes/ReleaseNotes4.1.1.txt | 14 +- ReleaseNotes/ReleaseNotes4.2.0.txt | 16 +- ReleaseNotes/ReleaseNotes4.3.0.txt | 19 +- ReleaseNotes/ReleaseNotes4.3.1.txt | 19 +- ReleaseNotes/ReleaseNotes4.3.2.txt | 19 +- ReleaseNotes/ReleaseNotes4.4.0.txt | 17 +- ReleaseNotes/ReleaseNotes4.4.1.txt | 23 +- ReleaseNotes/ReleaseNotes4.5.0.txt | 23 +- ReleaseNotes/ReleaseNotes4.5.1.txt | 4 +- ReleaseNotes/ReleaseNotes4.5.2.txt | 546 + config/G4UI_BUILD.gmk | 26 +- config/G4UI_USE.gmk | 7 +- config/G4VIS_BUILD.gmk | 48 +- config/G4VIS_USE.gmk | 15 +- config/History | 37 +- config/architecture.gmk | 18 +- config/binmake.gmk | 11 +- config/interactivity.gmk | 1 + config/scripts/GNUmakefile | 4 +- config/scripts/binmake.gmk | 14 +- config/sys/AIX-xlC.gmk | 2 - config/sys/DEC-cxx.gmk | 4 - config/sys/Darwin-g++.gmk | 5 +- config/sys/HP-aCC.gmk | 1 - config/sys/Linux-egcs.gmk | 3 +- config/sys/Linux-g++.gmk | 13 +- config/sys/SGI-CC.gmk | 4 +- config/sys/SUN-CC.gmk | 7 +- config/sys/WIN32-VC.gmk | 22 +- config/sys/WIN32-VC7.gmk | 19 +- config/sys/WIN32-g++.gmk | 9 +- 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 | 6 +- 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/History | 9 +- examples/README | 6 +- examples/advanced/GNUmakefile | 3 +- examples/advanced/Rich/GNUmakefile | 45 + examples/advanced/Rich/README | 137 + examples/advanced/Rich/RichTbSim.cc | 160 + examples/advanced/Rich/RichTbVis0.mac | 91 + .../advanced/Rich/include/AerogelRefData.hh | 76 + .../advanced/Rich/include/AerogelTypeSpec.hh | 44 + .../advanced/Rich/include/FilterTrData.hh | 72 + .../advanced/Rich/include/FilterTypeSpec.hh | 38 + .../advanced/Rich/include/HpdSiEnergyLoss.hh | 79 + .../Rich/include/PadHpdPhotoElectricEffect.hh | 88 + .../Rich/include/RichTbAnalysisManager.hh | 199 + .../Rich/include/RichTbAnalysisMessenger.hh | 67 + .../advanced/Rich/include/RichTbComponent.hh | 138 + .../include/RichTbDetectorConstruction.hh | 82 + .../Rich/include/RichTbEventAction.hh | 65 + .../Rich/include/RichTbGeometryParameters.hh | 392 + .../advanced/Rich/include/RichTbGraphics.hh | 54 + examples/advanced/Rich/include/RichTbHall.hh | 56 + examples/advanced/Rich/include/RichTbHit.hh | 101 + examples/advanced/Rich/include/RichTbHpd.hh | 86 + .../advanced/Rich/include/RichTbIOData.hh | 50 + .../advanced/Rich/include/RichTbMaterial.hh | 148 + .../Rich/include/RichTbMaterialParameters.hh | 279 + .../Rich/include/RichTbPhotoDetector.hh | 53 + .../Rich/include/RichTbPhysicsList.hh | 80 + .../include/RichTbPrimaryGeneratorAction.hh | 72 + .../RichTbPrimaryGeneratorMessenger.hh | 58 + .../advanced/Rich/include/RichTbRODummySD.hh | 51 + .../advanced/Rich/include/RichTbROGeometry.hh | 62 + .../advanced/Rich/include/RichTbRunAction.hh | 58 + .../advanced/Rich/include/RichTbRunConfig.hh | 188 + examples/advanced/Rich/include/RichTbSD.hh | 67 + examples/advanced/Rich/include/RichTbSiDet.hh | 71 + .../advanced/Rich/include/RichTbSiPixel.hh | 57 + .../Rich/include/RichTbStackingAction.hh | 44 + .../Rich/include/RichTbSteppingAction.hh | 66 + .../Rich/include/RichTbTrackingAction.hh | 44 + .../advanced/Rich/include/RichTbVisManager.hh | 53 + .../Rich/inputData/FilterTransInput.dat | 601 + .../Rich/inputData/aerogelRefIndexInput.dat | 37 + examples/advanced/Rich/macro/gui.mac | 31 + .../Rich/outputData/McOutputG4Example.dat | 28 + .../advanced/Rich/outputData/MyOutputDataFile | 0 examples/advanced/Rich/run1.mac | 45 + examples/advanced/Rich/src/AerogelRefData.cc | 198 + examples/advanced/Rich/src/FilterTrData.cc | 123 + examples/advanced/Rich/src/HpdSiEnergyLoss.cc | 164 + .../Rich/src/PadHpdPhotoElectricEffect.cc | 276 + .../Rich/src/RichTbAnalysisManager.cc | 267 + .../Rich/src/RichTbAnalysisMessenger.cc | 78 + examples/advanced/Rich/src/RichTbComponent.cc | 382 + .../Rich/src/RichTbDetectorConstruction.cc | 117 + .../advanced/Rich/src/RichTbEventAction.cc | 189 + .../Rich/src/RichTbGeometryParameters.cc | 427 + examples/advanced/Rich/src/RichTbGraphics.cc | 522 + examples/advanced/Rich/src/RichTbHall.cc | 56 + examples/advanced/Rich/src/RichTbHit.cc | 123 + examples/advanced/Rich/src/RichTbHpd.cc | 290 + examples/advanced/Rich/src/RichTbIOData.cc | 85 + examples/advanced/Rich/src/RichTbMaterial.cc | 1183 + .../Rich/src/RichTbMaterialParameters.cc | 234 + .../advanced/Rich/src/RichTbPhotoDetector.cc | 74 + .../advanced/Rich/src/RichTbPhysicsList.cc | 293 + .../Rich/src/RichTbPrimaryGeneratorAction.cc | 156 + .../src/RichTbPrimaryGeneratorMessenger.cc | 89 + .../advanced/Rich/src/RichTbROGeometry.cc | 62 + examples/advanced/Rich/src/RichTbRunAction.cc | 94 + examples/advanced/Rich/src/RichTbRunConfig.cc | 246 + examples/advanced/Rich/src/RichTbSD.cc | 149 + examples/advanced/Rich/src/RichTbSiDet.cc | 160 + examples/advanced/Rich/src/RichTbSiPixel.cc | 145 + .../advanced/Rich/src/RichTbStackingAction.cc | 32 + .../advanced/Rich/src/RichTbSteppingAction.cc | 256 + .../advanced/Rich/src/RichTbTrackingAction.cc | 31 + .../advanced/Rich/src/RichTbVisManager.cc | 154 + examples/advanced/Tiara/GNUmakefile | 24 + examples/advanced/Tiara/History | 36 + examples/advanced/Tiara/README | 271 + .../data/expDataConverted/TiaraData2.xml | Bin 0 -> 25476 bytes .../Tiara/data/expDataConverted/dpsSource.xml | Bin 0 -> 1000 bytes .../Tiara/data/expDataConverted/source.xml | Bin 0 -> 1774936 bytes .../Tiara/data/expDataOrig/43c100-00.pnt | 55 + .../Tiara/data/expDataOrig/43c150-00.pnt | 54 + .../Tiara/data/expDataOrig/43c25-00a.pnt | 55 + .../Tiara/data/expDataOrig/43c25-20a.pnt | 53 + .../Tiara/data/expDataOrig/43c25-40a.pnt | 53 + .../Tiara/data/expDataOrig/43c50-00a.pnt | 55 + .../Tiara/data/expDataOrig/43c50-20a.pnt | 53 + .../Tiara/data/expDataOrig/43c50-40a.pnt | 52 + .../Tiara/data/expDataOrig/68c100-00.pnt | 66 + .../Tiara/data/expDataOrig/68c150-00.pnt | 66 + .../Tiara/data/expDataOrig/68c200-00.pnt | 66 + .../Tiara/data/expDataOrig/68c25-00a.pnt | 66 + .../Tiara/data/expDataOrig/68c25-20a.pnt | 65 + .../Tiara/data/expDataOrig/68c25-40a.pnt | 65 + .../Tiara/data/expDataOrig/68c50-00a.pnt | 66 + .../Tiara/data/expDataOrig/68c50-20a.pnt | 65 + .../Tiara/data/expDataOrig/68c50-40a.pnt | 65 + .../expDataOrig/source-for-shield-exp-43.pnt | 55 + .../expDataOrig/source-for-shield-exp-68.pnt | 81 + examples/advanced/Tiara/envCommon.csh | 128 + examples/advanced/Tiara/run/runSim.py | 240 + .../advanced/Tiara/run/runSimNoAnalysis.py | 199 + examples/advanced/Tiara/run/runVisMode.py | 219 + examples/advanced/Tiara/run/vis.mac | 13 + .../Tiara/source/CLHEPWrapper/GNUmakefile | 48 + .../Tiara/source/CLHEPWrapper/include/CLHEP.i | 329 + .../Tiara/source/CLHEPWrapper/src/README | 2 + .../Tiara/source/G4KernelWrapper/G4String.i | 67 + .../Tiara/source/G4KernelWrapper/GNUmakefile | 56 + .../source/G4KernelWrapper/include/G4Kernel.i | 214 + .../Tiara/source/G4KernelWrapper/src/README | 2 + .../Tiara/source/TiaraWrapper/GNUmakefile | 91 + .../Tiara/source/TiaraWrapper/include/Tiara.i | 139 + .../Tiara/source/TiaraWrapper/src/README | 2 + .../Tiara/source/py_modules/dataAcess.py | 175 + .../Tiara/source/py_modules/detector.py | 64 + .../Tiara/source/py_modules/dpsManip.py | 90 + .../Tiara/source/py_modules/extractShelve.py | 108 + .../advanced/Tiara/source/py_modules/liz.py | 445 + .../advanced/Tiara/source/py_modules/myLiz.py | 10 + .../Tiara/source/py_modules/myUtils.py | 272 + .../Tiara/source/py_modules/parallelHall.py | 60 + .../Tiara/source/py_modules/posLog.py | 10 + .../Tiara/source/py_modules/runSequence.py | 119 + .../Tiara/source/py_modules/slabGeometry.py | 119 + .../Tiara/source/py_modules/tallyData.py | 72 + .../source/py_modules/tiaraApplication.py | 223 + .../Tiara/source/py_modules/tiaraDetectors.py | 42 + .../source/py_modules/tiaraGenerators.py | 93 + .../source/py_modules/tiaraSpecifications.py | 100 + .../source/py_modules/variableGeometry.py | 137 + examples/advanced/Tiara/source/swig.gmk | 51 + .../advanced/Tiara/source/tiara/GNUmakefile | 54 + .../source/tiara/include/TiaraCellScorer.hh | 99 + .../tiara/include/TiaraCellScorerStore.hh | 82 + .../tiara/include/TiaraConcreteShieldA.hh | 53 + .../tiara/include/TiaraConcreteShieldB.hh | 51 + .../tiara/include/TiaraDPSSampledEnergy.hh | 74 + .../source/tiara/include/TiaraDimensions.hh | 71 + .../tiara/include/TiaraEnergyCutProcess.hh | 93 + .../source/tiara/include/TiaraFileAcess.hh | 38 + .../include/TiaraFixedEnergyGenerator.hh | 46 + .../source/tiara/include/TiaraGeometry.hh | 95 + .../source/tiara/include/TiaraIronShieldA.hh | 51 + .../source/tiara/include/TiaraIronShieldB.hh | 52 + .../tiara/include/TiaraIsotropicDirections.hh | 57 + .../source/tiara/include/TiaraMaterials.hh | 71 + .../source/tiara/include/TiaraMeasure.hh | 53 + .../Tiara/source/tiara/include/TiaraPart.hh | 50 + .../source/tiara/include/TiaraPhysicsList.hh | 76 + .../include/TiaraPrimaryGeneratorAction.hh | 68 + .../Tiara/source/tiara/include/TiaraRandom.hh | 34 + .../tiara/include/TiaraSampledEnergy.hh | 67 + .../Tiara/source/tiara/include/TiaraSim.hh | 95 + .../tiara/include/TiaraStackingAction.hh | 44 + .../Tiara/source/tiara/include/TiaraTally.hh | 61 + .../tiara/include/TiaraTimedEventAction.hh | 75 + .../source/tiara/include/TiaraVComponent.hh | 50 + .../tiara/include/TiaraVDirectionGenerator.hh | 47 + .../include/TiaraVSourceEnergyGenerator.hh | 46 + .../tiara/include/TiaraVisEventAction.hh | 70 + .../source/tiara/include/TiaraVisManager.hh | 72 + .../source/tiara/include/TiaraVisRunAction.hh | 61 + .../Tiara/source/tiara/src/G4LElastic.cc-alt | 490 + .../Tiara/source/tiara/src/TiaraCellScorer.cc | 131 + .../tiara/src/TiaraCellScorer.cc-Smeared | 170 + .../source/tiara/src/TiaraCellScorerStore.cc | 92 + .../source/tiara/src/TiaraConcreteShieldA.cc | 74 + .../source/tiara/src/TiaraConcreteShieldB.cc | 101 + .../source/tiara/src/TiaraDPSSampledEnergy.cc | 145 + .../Tiara/source/tiara/src/TiaraDimensions.cc | 63 + .../source/tiara/src/TiaraEnergyCutProcess.cc | 95 + .../Tiara/source/tiara/src/TiaraFileAcess.cc | 38 + .../tiara/src/TiaraFixedEnergyGenerator.cc | 44 + .../Tiara/source/tiara/src/TiaraGeometry.cc | 340 + .../source/tiara/src/TiaraIronShieldA.cc | 72 + .../source/tiara/src/TiaraIronShieldB.cc | 156 + .../tiara/src/TiaraIsotropicDirections.cc | 77 + .../Tiara/source/tiara/src/TiaraMaterials.cc | 184 + .../Tiara/source/tiara/src/TiaraMeasure.cc | 77 + .../source/tiara/src/TiaraPhysicsList.cc | 631 + .../tiara/src/TiaraPrimaryGeneratorAction.cc | 107 + .../Tiara/source/tiara/src/TiaraRandom.cc | 43 + .../source/tiara/src/TiaraSampledEnergy.cc | 90 + .../Tiara/source/tiara/src/TiaraSim.cc | 168 + .../source/tiara/src/TiaraStackingAction.cc | 77 + .../Tiara/source/tiara/src/TiaraTally.cc | 110 + .../source/tiara/src/TiaraTimedEventAction.cc | 109 + .../Tiara/source/tiara/src/TiaraVComponent.cc | 14 +- .../tiara/src/TiaraVDirectionGenerator.cc | 32 + .../tiara/src/TiaraVSourceEnergyGenerator.cc | 30 + .../source/tiara/src/TiaraVisEventAction.cc | 157 + .../Tiara/source/tiara/src/TiaraVisManager.cc | 153 + .../source/tiara/src/TiaraVisRunAction.cc | 72 + examples/advanced/Tiara/source/tiara/tiara.cc | 89 + .../source/tiaraPhysicsLists/GNUmakefile | 30 + .../include/HadronPhysicsCASCADE_HP.hh | 77 + .../include/HadronPhysicsLHEP_BIC.hh | 75 + .../include/HadronPhysicsLHEP_BIC_HP.hh | 77 + .../include/HadronPhysicsLHEP_LEAD_HP.hh | 79 + .../include/HadronPhysicsLHEP_PRECO.hh | 75 + .../include/HadronPhysicsLHEP_PRECO_HP.hh | 77 + .../tiaraPhysicsLists/include/LHEP_BIC.hh} | 13 +- .../tiaraPhysicsLists/include/LHEP_BIC_HP.hh | 48 + .../include/Physics_CASCADE_HP.hh | 48 + .../include/Physics_LHEP_LEAD_HP.hh | 48 + .../include/Physics_LHEP_PRECO.hh | 49 + .../include/Physics_LHEP_PRECO_HP.hh | 48 + .../src/HadronPhysicsCASCADE_HP.cc | 78 + .../src/HadronPhysicsLHEP_BIC.cc | 76 + .../src/HadronPhysicsLHEP_BIC_HP.cc | 81 + .../src/HadronPhysicsLHEP_LEAD_HP.cc | 78 + .../src/HadronPhysicsLHEP_PRECO.cc | 73 + .../src/HadronPhysicsLHEP_PRECO_HP.cc | 76 + .../source/tiaraPhysicsLists/src/LHEP_BIC.cc | 104 + .../tiaraPhysicsLists/src/LHEP_BIC_HP.cc | 104 + .../src/Physics_CASCADE_HP.cc} | 22 +- .../src/Physics_LHEP_LEAD_HP.cc | 101 + .../src/Physics_LHEP_PRECO.cc | 101 + .../src/Physics_LHEP_PRECO_HP.cc | 101 + .../source/tiaraPhysicsPackaging/GNUmakefile | 38 + .../include/EMModelPhysics.hh | 53 + .../include/EMPhysics.hh | 53 + .../include/EM_GNPhysics.hh | 55 + .../include/G4BertiniNeutronBuilder.hh | 63 + .../include/G4BertiniPiKBuilder.hh | 66 + .../include/G4BertiniProtonBuilder.hh | 61 + .../include/G4BinaryNeutronBuilder.hh | 63 + .../include/G4BinaryProtonBuilder.hh | 61 + .../include/G4CascadeNeutronBuilder.hh | 63 + .../include/G4CascadeProtonBuilder.hh | 63 + .../include/G4DataQuestionaire.hh | 106 + .../include/G4EMBuilder.hh | 66 + .../include/G4EMModelBuilder.hh | 66 + .../include/G4ElectroNuclearBuilder.hh | 4 - .../include/G4FTFCNeutronBuilder.hh | 70 + .../include/G4FTFCPiKBuilder.hh | 73 + .../include/G4FTFCProtonBuilder.hh | 69 + .../include/G4FTFPNeutronBuilder.hh | 74 + .../include/G4FTFPPiKBuilder.hh | 77 + .../include/G4FTFPProtonBuilder.hh | 73 + .../include/G4HadronModelQEDBuilder.hh | 110 + .../include/G4HadronQEDBuilder.hh | 110 + .../include/G4LEADNeutronBuilder.hh | 61 + .../include/G4LEADPiKBuilder.hh | 64 + .../include/G4LEADProtonBuilder.hh | 59 + .../include/G4LEPNeutronBuilder.hh | 79 + .../include/G4LEPPiKBuilder.hh | 86 + .../include/G4LEPProtonBuilder.hh | 65 + .../include/G4LHEPNeutronBuilder.hh | 77 + .../include/G4LHEPPiKBuilder.hh | 104 + .../include/G4LHEPProtonBuilder.hh | 63 + .../include/G4MiscLHEPBuilder.hh | 177 + .../include/G4NeutronBuilder.hh | 59 + .../include/G4NeutronHPBuilder.hh | 70 + .../include/G4PiKBuilder.hh | 66 + .../include/G4PrecoNeutronBuilder.hh | 64 + .../include/G4PrecoProtonBuilder.hh | 62 + .../include/G4ProtonBuilder.hh | 55 + .../include/G4QGSCNeutronBuilder.hh | 71 + .../include/G4QGSCPiKBuilder.hh | 75 + .../include/G4QGSCProtonBuilder.hh | 70 + .../include/G4QGSPNeutronBuilder.hh | 75 + .../include/G4QGSPPiKBuilder.hh | 78 + .../include/G4QGSPProtonBuilder.hh | 74 + .../include/G4StoppingHadronBuilder.hh | 65 + .../include/G4VNeutronBuilder.hh | 43 + .../include/G4VPiKBuilder.hh | 49 + .../include/G4VProtonBuilder.hh | 38 + .../include/GeneralPhysics.hh | 62 +- .../include/IonModelPhysics.hh | 106 + .../include/IonPhysics.hh | 105 + .../include/MuonModelPhysics.hh | 80 + .../include/MuonPhysics.hh | 80 + .../src/EMModelPhysics.cc | 61 + .../tiaraPhysicsPackaging/src/EMPhysics.cc | 61 + .../tiaraPhysicsPackaging/src/EM_GNPhysics.cc | 64 + .../src/G4BertiniNeutronBuilder.cc | 65 + .../src/G4BertiniPiKBuilder.cc | 81 + .../src/G4BertiniProtonBuilder.cc | 54 + .../src/G4BinaryNeutronBuilder.cc | 65 + .../src/G4BinaryProtonBuilder.cc | 55 + .../src/G4CascadeNeutronBuilder.cc | 67 + .../src/G4CascadeProtonBuilder.cc | 55 + .../tiaraPhysicsPackaging/src/G4EMBuilder.cc | 70 + .../src/G4EMModelBuilder.cc | 70 + .../src/G4ElectroNuclearBuilder.cc | 2 +- .../src/G4FTFCNeutronBuilder.cc | 72 + .../src/G4FTFCPiKBuilder.cc | 99 + .../src/G4FTFCProtonBuilder.cc | 62 + .../src/G4FTFPNeutronBuilder.cc | 74 + .../src/G4FTFPPiKBuilder.cc | 101 + .../src/G4FTFPProtonBuilder.cc | 64 + .../src/G4HadronModelQEDBuilder.cc | 110 + .../src/G4HadronQEDBuilder.cc | 108 + .../src/G4LEADNeutronBuilder.cc | 63 + .../src/G4LEADPiKBuilder.cc | 85 + .../src/G4LEADProtonBuilder.cc | 53 + .../src/G4LEPNeutronBuilder.cc | 71 + .../src/G4LEPPiKBuilder.cc | 106 + .../src/G4LEPProtonBuilder.cc | 54 + .../src/G4LHEPNeutronBuilder.cc | 73 + .../src/G4LHEPPiKBuilder.cc | 115 + .../src/G4LHEPProtonBuilder.cc | 56 + .../src/G4MiscLHEPBuilder.cc | 178 + .../src/G4NeutronBuilder.cc | 51 + .../src/G4NeutronHPBuilder.cc | 96 + .../tiaraPhysicsPackaging/src/G4PiKBuilder.cc | 74 + .../src/G4PrecoNeutronBuilder.cc | 65 + .../src/G4PrecoProtonBuilder.cc | 55 + .../src/G4ProtonBuilder.cc | 47 + .../src/G4QGSCNeutronBuilder.cc | 72 + .../src/G4QGSCPiKBuilder.cc | 99 + .../src/G4QGSCProtonBuilder.cc | 62 + .../src/G4QGSPNeutronBuilder.cc | 74 + .../src/G4QGSPPiKBuilder.cc | 101 + .../src/G4QGSPProtonBuilder.cc | 64 + .../src/G4StoppingHadronBuilder.cc | 67 + .../src/GeneralPhysics.cc | 68 + .../src/IonModelPhysics.cc | 139 + .../tiaraPhysicsPackaging/src/IonPhysics.cc | 139 + .../src/MuonModelPhysics.cc | 124 + .../tiaraPhysicsPackaging/src/MuonPhysics.cc | 123 + examples/advanced/brachytherapy/Brachy.cc | 127 +- examples/advanced/brachytherapy/GNUmakefile | 18 +- .../brachytherapy/IodiumSourceMacro.mac | 7 + .../brachytherapy/IodiumSourceMacro.out | 116 + .../brachytherapy/IridiumSourceMacro.mac | 5 + .../brachytherapy/LeipzigSourceMacro.mac | 6 + examples/advanced/brachytherapy/README | 181 +- .../brachytherapy/VisualisationMacro.mac | 18 + examples/advanced/brachytherapy/brachy.py | 12 - .../advanced/brachytherapy/brachytherapy.hbk | Bin 450560 -> 0 bytes .../include/BrachyAnalysisManager.hh | 73 +- .../include/BrachyDetectorConstruction.hh | 148 +- .../include/BrachyDetectorConstructionI.hh | 66 +- .../include/BrachyDetectorConstructionIr.hh | 60 +- .../BrachyDetectorConstructionLeipzig.hh | 54 +- .../include/BrachyDetectorMessenger.hh | 37 +- .../brachytherapy/include/BrachyDummySD.hh | 18 +- .../include/BrachyEventAction.hh | 40 +- .../brachytherapy/include/BrachyFactory.hh | 48 +- .../brachytherapy/include/BrachyFactoryI.hh | 32 +- .../brachytherapy/include/BrachyFactoryIr.hh | 21 +- .../include/BrachyFactoryLeipzig.hh | 19 +- .../brachytherapy/include/BrachyMaterial.hh | 35 +- .../brachytherapy/include/BrachyPhantomHit.hh | 117 +- .../include/BrachyPhantomROGeometry.hh | 31 +- .../brachytherapy/include/BrachyPhantomSD.hh | 34 +- .../include/BrachyPhysicsList.hh | 2 +- .../include/BrachyPrimaryGeneratorAction.hh | 16 +- .../include/BrachyPrimaryGeneratorActionI.hh | 27 +- .../include/BrachyPrimaryGeneratorActionIr.hh | 32 +- .../brachytherapy/include/BrachyRunAction.hh | 38 +- .../include/BrachyRunMessenger.hh | 36 +- .../brachytherapy/include/BrachyVisManager.hh | 13 +- examples/advanced/brachytherapy/initInter.mac | 33 - .../src/BrachyAnalysisManager.cc | 119 +- .../src/BrachyDetectorConstruction.cc | 346 +- .../src/BrachyDetectorConstructionI.cc | 226 +- .../src/BrachyDetectorConstructionIr.cc | 213 +- .../src/BrachyDetectorConstructionLeipzig.cc | 155 +- .../src/BrachyDetectorMessenger.cc | 87 +- .../brachytherapy/src/BrachyEventAction.cc | 161 +- .../brachytherapy/src/BrachyFactory.cc | 19 +- .../brachytherapy/src/BrachyFactoryI.cc | 35 +- .../brachytherapy/src/BrachyFactoryIr.cc | 44 +- .../brachytherapy/src/BrachyFactoryLeipzig.cc | 40 +- .../brachytherapy/src/BrachyMaterial.cc | 319 +- .../brachytherapy/src/BrachyPhantomHit.cc | 53 +- .../src/BrachyPhantomROGeometry.cc | 167 +- .../brachytherapy/src/BrachyPhantomSD.cc | 110 +- .../brachytherapy/src/BrachyPhysicsList.cc | 70 +- .../src/BrachyPrimaryGeneratorAction.cc | 40 +- .../src/BrachyPrimaryGeneratorActionI.cc | 143 +- .../src/BrachyPrimaryGeneratorActionIr.cc | 113 +- .../brachytherapy/src/BrachyRunAction.cc | 76 +- .../brachytherapy/src/BrachyRunMessenger.cc | 67 +- .../brachytherapy/src/BrachyVisManager.cc | 26 +- .../CompositeCalorimeter.cc | 11 +- .../advanced/composite_calorimeter/History | 10 +- .../advanced/composite_calorimeter/README | 106 +- .../composite_calorimeter/envExample.csh | 6 - .../composite_calorimeter/envExample.sh | 6 - .../include/CCalAMaterial.hh | 2 +- .../include/CCalAnalysis.hh | 2 +- .../include/CCalDataSet.hh | 2 +- .../include/CCalDetector.hh | 8 +- .../include/CCalG4Able.hh | 8 +- .../include/CCalG4Ecal.hh | 4 +- .../include/CCalG4Hcal.hh | 4 +- .../include/CCalG4Hit.hh | 4 +- .../include/CCalGeometryConfiguration.hh | 6 +- .../composite_calorimeter/include/CCalHit.hh | 6 +- .../include/CCalMaterial.hh | 4 +- .../include/CCalMaterialFactory.hh | 10 +- .../include/CCalRotationMatrixFactory.hh | 8 +- .../include/CCalSDList.hh | 6 +- .../include/CCalSensAssign.hh | 4 +- .../include/CCalSensitiveConfiguration.hh | 6 +- .../include/CCalSensitiveDetectors.hh | 8 +- .../include/CCaloOrganization.hh | 6 +- .../composite_calorimeter/include/CCaloSD.hh | 4 +- .../include/CCalutils.hh | 14 +- .../include/EMModelPhysics.hh | 53 + .../include/G4DataQuestionaire.hh | 106 + .../include/G4EMModelBuilder.hh | 66 + .../include/G4HadronModelQEDBuilder.hh | 110 + .../include/G4HadronQEDBuilder.hh | 2 +- .../include/G4LEPPiKBuilder.hh | 6 + .../include/G4LHEPPiKBuilder.hh | 6 + .../include/G4NeutronBuilder.hh | 4 +- .../include/G4PiKBuilder.hh | 4 +- .../include/G4ProtonBuilder.hh | 4 +- .../include/G4QGSCPiKBuilder.hh | 4 + .../include/G4QGSPPiKBuilder.hh | 3 + .../include/G4StoppingHadronBuilder.hh | 2 +- .../include/GeneralPhysics.hh | 4 +- .../include/IonModelPhysics.hh | 106 + .../composite_calorimeter/include/LHEP.hh | 48 + .../include/MuonModelPhysics.hh | 80 + .../composite_calorimeter/include/QGSC.hh | 48 + .../composite_calorimeter/include/QGSP.hh | 48 + .../src/CCalAMaterial.cc | 5 +- .../composite_calorimeter/src/CCalAnalysis.cc | 46 +- .../composite_calorimeter/src/CCalDetector.cc | 4 +- .../composite_calorimeter/src/CCalEcal.cc | 4 +- .../src/CCalEndOfEventAction.cc | 4 +- .../composite_calorimeter/src/CCalG4Able.cc | 2 +- .../composite_calorimeter/src/CCalG4Ecal.cc | 2 +- .../composite_calorimeter/src/CCalG4Hcal.cc | 2 +- .../composite_calorimeter/src/CCalG4Hit.cc | 7 +- .../src/CCalGeometryConfiguration.cc | 4 +- .../composite_calorimeter/src/CCalHall.cc | 4 +- .../composite_calorimeter/src/CCalHcal.cc | 4 +- .../composite_calorimeter/src/CCalHit.cc | 4 +- .../src/CCalMagneticField.cc | 4 +- .../composite_calorimeter/src/CCalMaterial.cc | 2 +- .../src/CCalMaterialFactory.cc | 10 +- .../src/CCalPhysicsList.cc-LHEP | 85 - .../src/CCalPhysicsList.cc-QGSC | 85 - .../src/CCalPhysicsList.cc-QGSP | 85 - .../src/CCalRotationMatrixFactory.cc | 11 +- .../src/CCalSensAssign.cc | 2 +- .../src/CCalSensitiveConfiguration.cc | 4 +- .../src/CCalSensitiveDetectors.cc | 8 +- .../src/CCalStackingAction.cc | 2 +- .../src/CCalSteppingAction.cc | 6 +- .../src/CCalVisManager.cc | 2 +- .../src/CCalVisualisable.cc | 4 +- .../src/CCaloOrganization.cc | 6 +- .../composite_calorimeter/src/CCaloSD.cc | 6 +- .../composite_calorimeter/src/CCalutils.cc | 16 +- .../src/EMModelPhysics.cc | 61 + .../composite_calorimeter/src/EMPhysics.cc | 2 +- .../composite_calorimeter/src/G4EMBuilder.cc | 2 +- .../src/G4EMModelBuilder.cc | 70 + .../src/G4HadronModelQEDBuilder.cc | 110 + .../src/G4HadronQEDBuilder.cc | 2 +- .../src/G4LEPPiKBuilder.cc | 7 +- .../src/G4LHEPPiKBuilder.cc | 7 +- .../src/G4NeutronBuilder.cc | 2 +- .../composite_calorimeter/src/G4PiKBuilder.cc | 2 +- .../src/G4ProtonBuilder.cc | 2 +- .../src/G4QGSCPiKBuilder.cc | 2 + .../src/G4QGSPPiKBuilder.cc | 2 + .../src/G4StoppingHadronBuilder.cc | 2 +- .../src/GeneralPhysics.cc | 2 +- .../src/HadronPhysicsLHEP.cc | 2 +- .../src/HadronPhysicsQGSC.cc | 2 +- .../src/HadronPhysicsQGSP.cc | 2 +- .../src/IonModelPhysics.cc | 139 + .../composite_calorimeter/src/IonPhysics.cc | 8 +- .../composite_calorimeter/src/LHEP.cc | 101 + .../src/MuonModelPhysics.cc | 124 + .../composite_calorimeter/src/MuonPhysics.cc | 2 +- .../composite_calorimeter/src/QGSC.cc | 100 + .../composite_calorimeter/src/QGSP.cc | 104 + .../advanced/gammaray_telescope/GNUmakefile | 27 +- .../gammaray_telescope/GammaRayTel.cc | 13 +- examples/advanced/gammaray_telescope/README | 88 +- .../advanced/gammaray_telescope/emlowe.mac | 16 + .../advanced/gammaray_telescope/emstd.mac | 16 + .../gammaray_telescope/gammaraytel.in | 16 +- .../gammaray_telescope/gammaraytel.out | 10332 +- .../gammaray_telescope/gammaraytel.stt_out | 8742 + .../include/GammaRayTelAnalysis.hh | 63 +- .../include/GammaRayTelAnalysisMessenger.hh | 2 +- .../include/GammaRayTelAnticoincidenceHit.hh | 2 +- .../include/GammaRayTelAnticoincidenceSD.hh | 6 +- .../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 | 10 +- .../include/GammaRayTelEMPhysics.hh | 114 + .../include/GammaRayTelEventAction.hh | 2 +- .../include/GammaRayTelGeneralPhysics.hh | 74 +- .../include/GammaRayTelHadronPhysics.hh | 344 + .../include/GammaRayTelIonPhysics.hh | 111 + .../include/GammaRayTelMuonPhysics.hh | 93 + .../include/GammaRayTelPhysicsList.hh | 72 +- .../GammaRayTelPrimaryGeneratorAction.hh | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.hh | 2 +- .../include/GammaRayTelRunAction.hh | 2 +- .../include/GammaRayTelTrackerHit.hh | 2 +- .../include/GammaRayTelTrackerROGeometry.hh | 2 +- .../include/GammaRayTelTrackerSD.hh | 2 +- .../include/GammaRayTelVisManager.hh | 2 +- .../advanced/gammaray_telescope/macro1.mac | 11 +- .../advanced/gammaray_telescope/macro2.mac | 6 +- .../advanced/gammaray_telescope/macro3.mac | 53 +- .../gammaray_telescope/prerunGammaRayTel.mac | 1 + .../src/GammaRayTelAnalysis.cc | 167 +- .../src/GammaRayTelAnalysisMessenger.cc | 2 +- .../src/GammaRayTelAnticoincidenceHit.cc | 7 +- .../src/GammaRayTelAnticoincidenceSD.cc | 8 +- .../src/GammaRayTelCalorimeterHit.cc | 7 +- .../src/GammaRayTelCalorimeterSD.cc | 8 +- .../src/GammaRayTelDetectorConstruction.cc | 19 +- .../src/GammaRayTelDetectorMessenger.cc | 2 +- .../gammaray_telescope/src/GammaRayTelDigi.cc | 9 +- .../src/GammaRayTelDigitizer.cc | 6 +- .../src/GammaRayTelDigitizerMessenger.cc | 2 +- .../src/GammaRayTelEMPhysics.cc | 128 + .../src/GammaRayTelEventAction.cc | 14 +- .../src/GammaRayTelGeneralPhysics.cc | 71 + .../src/GammaRayTelHadronPhysics.cc | 439 + .../src/GammaRayTelIonPhysics.cc | 140 + .../src/GammaRayTelMuonPhysics.cc | 128 + .../src/GammaRayTelPhysicsList.cc | 312 +- .../src/GammaRayTelPrimaryGeneratorAction.cc | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.cc | 2 +- .../src/GammaRayTelRunAction.cc | 19 +- .../src/GammaRayTelTrackerHit.cc | 7 +- .../src/GammaRayTelTrackerROGeometry.cc | 2 +- .../src/GammaRayTelTrackerSD.cc | 6 +- .../src/GammaRayTelVisManager.cc | 13 +- .../advanced/lAr_calorimeter/Beam_802_1mm.dat | 5 - .../lAr_calorimeter/EdepFCAL_802_1mm.dat | 785 + .../lAr_calorimeter/EmModule_802_1mm.dat | 1 - examples/advanced/lAr_calorimeter/GNUmakefile | 14 +- .../lAr_calorimeter/HadModule_802_1mm.dat | 1 - .../lAr_calorimeter/OutTracks_802_1mm.dat | 2355 + examples/advanced/lAr_calorimeter/README | 40 +- .../lAr_calorimeter/SecndTracks_802_1mm.dat | 785 + .../include/FCALAnalysisManager.hh | 33 +- .../include/FCALAnalysisMessenger.hh | 22 + .../lAr_calorimeter/include/FCALCalorHit.hh | 2 +- .../lAr_calorimeter/include/FCALEMModuleSD.hh | 2 +- .../include/FCALHadModuleSD.hh | 2 +- .../include/FCALPhysicsList.hh | 4 +- .../include/FCALPrimaryGeneratorAction.hh | 2 +- .../lAr_calorimeter/include/FCALRunAction.hh | 8 +- .../include/FCALSteppingAction.hh | 2 +- .../include/FCALSteppingVerbose.hh | 2 +- .../include/FCALTBEventAction.hh | 2 +- .../include/FCALTestbeamSetupSD.hh | 2 +- .../lAr_calorimeter/include/FCALVisManager.hh | 2 +- examples/advanced/lAr_calorimeter/lArCal.cc | 8 +- .../advanced/lAr_calorimeter/prerunlArcal.mac | 8 +- examples/advanced/lAr_calorimeter/run1.mac | 4 +- examples/advanced/lAr_calorimeter/run1.out | 123405 +++++++++++++++ .../src/FCALAnalysisManager.cc | 96 +- .../src/FCALAnalysisMessenger.cc | 22 + .../lAr_calorimeter/src/FCALCalorHit.cc | 2 +- .../lAr_calorimeter/src/FCALEMModuleSD.cc | 2 +- .../lAr_calorimeter/src/FCALHadModuleSD.cc | 2 +- .../lAr_calorimeter/src/FCALPhysicsList.cc | 6 +- .../src/FCALPrimaryGeneratorAction.cc | 2 +- .../lAr_calorimeter/src/FCALRunAction.cc | 2 +- .../lAr_calorimeter/src/FCALSteppingAction.cc | 2 +- .../src/FCALSteppingVerbose.cc | 108 +- .../lAr_calorimeter/src/FCALTBEventAction.cc | 50 +- .../src/FCALTestbeamSetupSD.cc | 2 +- .../lAr_calorimeter/src/FCALVisManager.cc | 10 +- examples/advanced/lAr_calorimeter/vis.mac | 2 +- examples/advanced/underground_physics/DMX.cc | 2 +- .../include/DMXMinEkineCuts.hh | 2 +- .../src/DMXAnalysisManager.cc | 4 +- .../src/DMXDetectorMaterial.icc | 20 +- .../src/DMXDetectorRoom.icc | 6 +- .../underground_physics/src/DMXEventAction.cc | 34 +- .../src/DMXEventActionMessenger.cc | 6 +- .../src/DMXMinEkineCuts.cc | 2 +- .../src/DMXParticleSourceMessenger.cc | 6 +- .../underground_physics/src/DMXPhysicsList.cc | 38 +- .../underground_physics/src/DMXPmtHit.cc | 4 +- .../underground_physics/src/DMXRunAction.cc | 6 +- .../src/DMXRunActionMessenger.cc | 4 +- .../underground_physics/src/DMXScintHit.cc | 4 +- .../src/DMXStackingActionMessenger.cc | 2 +- .../underground_physics/src/DMXVisManager.cc | 4 +- examples/advanced/underground_physics/stt.out | Bin 0 -> 13887 bytes .../include/XrayFluoAnalysisManager.hh | 2 +- .../include/XrayFluoDataSet.hh | 8 +- .../include/XrayFluoDetectorConstruction.hh | 6 +- .../include/XrayFluoRunAction.hh | 6 +- .../src/XrayFluoAnalysisManager.cc | 2 +- .../xray_fluorescence/src/XrayFluoDataSet.cc | 11 +- .../src/XrayFluoEventAction.cc | 6 +- .../xray_fluorescence/src/XrayFluoHPGeSD.cc | 112 +- .../src/XrayFluoNormalization.cc | 2 +- .../src/XrayFluoRunAction.cc | 44 +- .../src/XrayFluoSensorHit.cc | 8 +- .../src/XrayFluoSteppingVerbose.cc | 104 +- examples/advanced/xray_telescope/XrayTel.cc | 2 +- .../xray_telescope/include/XrayTelAnalysis.hh | 6 +- .../xray_telescope/src/XrayTelAnalysis.cc | 48 +- examples/advanced/xray_telescope/xraytel.out | 7 + examples/extended/analysis/A01/README | 3 +- examples/extended/analysis/A01/README.JAIDA | 2 +- examples/extended/analysis/A01/heprep2.mac | 2 +- .../A01/include/A01AnalysisManager.hh | 24 +- .../analysis/A01/include/A01Trajectory.hh | 6 +- .../analysis/A01/src/A01AnalysisManager.cc | 24 +- .../extended/analysis/A01/src/A01EMPhysics.cc | 4 +- .../analysis/A01/src/A01GeneralPhysics.cc | 4 +- .../analysis/A01/src/A01HadronPhysics.cc | 4 +- .../analysis/A01/src/A01IonPhysics.cc | 4 +- .../analysis/A01/src/A01MuonPhysics.cc | 4 +- .../analysis/A01/src/A01PhysicsList.cc | 4 +- examples/extended/analysis/AnaEx01/AnaEx01.cc | 2 +- examples/extended/analysis/AnaEx01/History | 5 +- examples/extended/analysis/AnaEx01/README | 19 +- .../analysis/AnaEx01/analysis/Lab/AnaEx01.py | 79 +- .../AnaEx01/include/AnaEx01AnalysisManager.hh | 28 +- .../AnaEx01/include/AnaEx01CalorHit.hh | 4 +- .../AnaEx01/include/AnaEx01CalorimeterSD.hh | 4 +- .../include/AnaEx01DetectorConstruction.hh | 4 +- .../include/AnaEx01DetectorMessenger.hh | 4 +- .../AnaEx01/include/AnaEx01EventAction.hh | 4 +- .../AnaEx01/include/AnaEx01PhysicsList.hh | 4 +- .../include/AnaEx01PrimaryGeneratorAction.hh | 4 +- .../AnaEx01PrimaryGeneratorMessenger.hh | 4 +- .../AnaEx01/include/AnaEx01RunAction.hh | 4 +- .../AnaEx01/include/AnaEx01SteppingAction.hh | 4 +- .../AnaEx01/include/AnaEx01SteppingVerbose.hh | 4 +- .../AnaEx01/include/AnaEx01VisManager.hh | 4 +- .../AnaEx01/src/AnaEx01AnalysisManager.cc | 22 +- .../analysis/AnaEx01/src/AnaEx01CalorHit.cc | 4 +- .../AnaEx01/src/AnaEx01CalorimeterSD.cc | 2 +- .../src/AnaEx01DetectorConstruction.cc | 42 +- .../AnaEx01/src/AnaEx01DetectorMessenger.cc | 2 +- .../AnaEx01/src/AnaEx01EventAction.cc | 2 +- .../AnaEx01/src/AnaEx01PhysicsList.cc | 4 +- .../src/AnaEx01PrimaryGeneratorAction.cc | 4 +- .../src/AnaEx01PrimaryGeneratorMessenger.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01RunAction.cc | 4 +- .../AnaEx01/src/AnaEx01SteppingAction.cc | 4 +- .../AnaEx01/src/AnaEx01SteppingVerbose.cc | 110 +- .../analysis/AnaEx01/src/AnaEx01VisManager.cc | 4 +- examples/extended/biasing/B01/exampleB01.cc | 8 +- .../B01/include/B01DetectorConstruction.hh | 2 +- .../B01/src/B01DetectorConstruction.cc | 12 +- .../biasing/B01/src/B01PhysicsList.cc | 6 +- .../B01/src/B01PrimaryGeneratorAction.cc | 2 +- examples/extended/biasing/B02/GNUmakefile | 8 +- examples/extended/biasing/B02/exampleB02.cc | 8 +- examples/extended/biasing/B02/exampleB02.out | 2 +- .../biasing/B02/include/B02CellScorer.hh | 6 +- .../biasing/B02/include/B02CellScorerStore.hh | 10 +- .../B02/include/B02DetectorConstruction.hh | 2 +- .../B02ImportanceDetectorConstruction.hh | 6 +- .../biasing/B02/include/B02PVolumeStore.hh | 6 +- .../include/B02ScoringDetectorConstruction.hh | 2 +- .../extended/biasing/B02/src/B02CellScorer.cc | 2 +- .../biasing/B02/src/B02CellScorerStore.cc | 2 +- .../B02/src/B02DetectorConstruction.cc | 6 +- .../src/B02ImportanceDetectorConstruction.cc | 8 +- .../biasing/B02/src/B02PVolumeStore.cc | 8 +- .../biasing/B02/src/B02PhysicsList.cc | 6 +- .../B02/src/B02PrimaryGeneratorAction.cc | 2 +- .../B02/src/B02ScoringDetectorConstruction.cc | 2 +- examples/extended/biasing/B03/exampleB03.cc | 2 +- examples/extended/biasing/B03/exampleB03.out | 2 +- .../extended/biasing/B03/include/B03App.hh | 2 +- .../extended/biasing/B03/include/B03App.i | 8 +- .../B03/include/B03DetectorConstruction.hh | 2 +- .../B03ImportanceDetectorConstruction.hh | 6 +- .../biasing/B03/include/B03PVolumeStore.hh | 6 +- .../biasing/B03/include/B03PhysicsList.hh | 2 +- .../B03/include/B03PrimaryGeneratorAction.hh | 2 +- examples/extended/biasing/B03/src/B03App.cc | 6 +- .../extended/biasing/B03/src/B03App_wrap.cc | 30 +- .../B03/src/B03DetectorConstruction.cc | 6 +- .../src/B03ImportanceDetectorConstruction.cc | 8 +- .../biasing/B03/src/B03PVolumeStore.cc | 8 +- .../biasing/B03/src/B03PhysicsList.cc | 6 +- .../B03/src/B03PrimaryGeneratorAction.cc | 2 +- examples/extended/biasing/History | 5 +- .../extended/electromagnetic/TestEm1/History | 19 +- .../electromagnetic/TestEm1/TestEm1.cc | 2 +- .../electromagnetic/TestEm1/TestEm1.in | 6 +- .../electromagnetic/TestEm1/TestEm1.out | 26 +- .../include/Em1DetectorConstruction.hh | 2 +- .../TestEm1/include/Em1DetectorMessenger.hh | 2 +- .../TestEm1/include/Em1EventAction.hh | 2 +- .../include/Em1EventActionMessenger.hh | 2 +- .../TestEm1/include/Em1PhysListEmModel.hh | 2 +- .../TestEm1/include/Em1PhysListEmStandard.hh | 2 +- .../TestEm1/include/Em1PhysListGeneral.hh | 2 +- .../TestEm1/include/Em1PhysListParticles.hh | 2 +- .../TestEm1/include/Em1PhysicsList.hh | 2 +- .../include/Em1PhysicsListMessenger.hh | 2 +- .../include/Em1PrimaryGeneratorAction.hh | 2 +- .../include/Em1PrimaryGeneratorMessenger.hh | 2 +- .../TestEm1/include/Em1RunAction.hh | 2 +- .../TestEm1/include/Em1SteppingAction.hh | 2 +- .../TestEm1/include/Em1SteppingVerbose.hh | 2 +- .../TestEm1/include/Em1TrackingAction.hh | 2 +- .../TestEm1/include/Em1VisManager.hh | 2 +- .../TestEm1/include/ProcessesCount.hh | 8 +- .../TestEm1/src/Em1DetectorConstruction.cc | 23 +- .../TestEm1/src/Em1DetectorMessenger.cc | 2 +- .../TestEm1/src/Em1EventAction.cc | 10 +- .../TestEm1/src/Em1EventActionMessenger.cc | 2 +- .../TestEm1/src/Em1PhysListEmModel.cc | 2 +- .../TestEm1/src/Em1PhysListEmStandard.cc | 2 +- .../TestEm1/src/Em1PhysListGeneral.cc | 2 +- .../TestEm1/src/Em1PhysListParticles.cc | 2 +- .../TestEm1/src/Em1PhysicsList.cc | 6 +- .../TestEm1/src/Em1PhysicsListMessenger.cc | 2 +- .../TestEm1/src/Em1PrimaryGeneratorAction.cc | 2 +- .../src/Em1PrimaryGeneratorMessenger.cc | 2 +- .../TestEm1/src/Em1RunAction.cc | 28 +- .../TestEm1/src/Em1SteppingAction.cc | 28 +- .../TestEm1/src/Em1SteppingVerbose.cc | 106 +- .../TestEm1/src/Em1TrackingAction.cc | 23 +- .../TestEm1/src/Em1VisManager.cc | 2 +- .../electromagnetic/TestEm10/TestEm10.cc | 2 +- .../TestEm10/TestEm10.large_N.out | 2 +- .../electromagnetic/TestEm10/TestEm10.out | 168 +- .../TestEm10/include/Em10CalorHit.hh | 2 +- .../TestEm10/include/Em10CalorimeterSD.hh | 2 +- .../include/Em10DetectorConstruction.hh | 2 +- .../TestEm10/include/Em10DetectorMessenger.hh | 2 +- .../TestEm10/include/Em10EventAction.hh | 2 +- .../include/Em10EventActionMessenger.hh | 2 +- .../TestEm10/include/Em10PhysicsList.hh | 2 +- .../include/Em10PhysicsListMessenger.hh | 2 +- .../include/Em10PrimaryGeneratorAction.hh | 2 +- .../include/Em10PrimaryGeneratorMessenger.hh | 2 +- .../TestEm10/include/Em10RunAction.hh | 6 +- .../TestEm10/include/Em10RunMessenger.hh | 2 +- .../TestEm10/include/Em10StepCut.hh | 2 +- .../TestEm10/include/Em10SteppingAction.hh | 2 +- .../TestEm10/include/Em10SteppingMessenger.hh | 2 +- .../TestEm10/include/Em10SteppingVerbose.hh | 2 +- .../TestEm10/include/Em10VisManager.hh | 2 +- .../include/TRTDetectorConstruction.hh | 2 +- .../TestEm10/include/TRTMaterials.hh | 2 +- .../TestEm10/src/Em10CalorHit.cc | 2 +- .../TestEm10/src/Em10CalorimeterSD.cc | 2 +- .../TestEm10/src/Em10DetectorConstruction.cc | 2 +- .../TestEm10/src/Em10DetectorMessenger.cc | 2 +- .../TestEm10/src/Em10EventAction.cc | 8 +- .../TestEm10/src/Em10EventActionMessenger.cc | 2 +- .../TestEm10/src/Em10PhysicsList.cc | 6 +- .../TestEm10/src/Em10PhysicsListMessenger.cc | 2 +- .../src/Em10PrimaryGeneratorAction.cc | 2 +- .../src/Em10PrimaryGeneratorMessenger.cc | 2 +- .../TestEm10/src/Em10RunAction.cc | 86 +- .../TestEm10/src/Em10RunMessenger.cc | 2 +- .../TestEm10/src/Em10StepCut.cc | 2 +- .../TestEm10/src/Em10SteppingAction.cc | 6 +- .../TestEm10/src/Em10SteppingMessenger.cc | 2 +- .../TestEm10/src/Em10SteppingVerbose.cc | 118 +- .../TestEm10/src/Em10VisManager.cc | 2 +- .../extended/electromagnetic/TestEm2/History | 18 +- .../extended/electromagnetic/TestEm2/README | 5 +- .../electromagnetic/TestEm2/TestEm2.cc | 2 +- .../electromagnetic/TestEm2/TestEm2.model.out | 2 +- .../electromagnetic/TestEm2/TestEm2.out | 44 +- .../electromagnetic/TestEm2/geant3/gmakeB | 2 +- .../electromagnetic/TestEm2/geant3/gmakeT | 2 +- .../include/Em2DetectorConstruction.hh | 63 +- .../TestEm2/include/Em2DetectorMessenger.hh | 2 +- .../TestEm2/include/Em2EventAction.hh | 2 +- .../include/Em2EventActionMessenger.hh | 2 +- .../TestEm2/include/Em2PhysListEmModel.hh | 2 +- .../TestEm2/include/Em2PhysListEmStandard.hh | 2 +- .../TestEm2/include/Em2PhysListGeneral.hh | 2 +- .../TestEm2/include/Em2PhysListParticles.hh | 2 +- .../TestEm2/include/Em2PhysicsList.hh | 2 +- .../include/Em2PhysicsListMessenger.hh | 2 +- .../include/Em2PrimaryGeneratorAction.hh | 2 +- .../TestEm2/include/Em2RunAction.hh | 8 +- .../TestEm2/include/Em2SteppingAction.hh | 2 +- .../TestEm2/include/Em2SteppingVerbose.hh | 2 +- .../TestEm2/include/Em2TrackingAction.hh | 2 +- .../TestEm2/include/Em2VisManager.hh | 2 +- .../electromagnetic/TestEm2/run01.out | 2 +- .../electromagnetic/TestEm2/run05.mac | 38 + .../TestEm2/src/Em2DetectorConstruction.cc | 99 +- .../TestEm2/src/Em2DetectorMessenger.cc | 2 +- .../TestEm2/src/Em2EventAction.cc | 2 +- .../TestEm2/src/Em2EventActionMessenger.cc | 2 +- .../TestEm2/src/Em2PhysListEmModel.cc | 26 +- .../TestEm2/src/Em2PhysListEmStandard.cc | 2 +- .../TestEm2/src/Em2PhysListGeneral.cc | 2 +- .../TestEm2/src/Em2PhysListParticles.cc | 2 +- .../TestEm2/src/Em2PhysicsList.cc | 6 +- .../TestEm2/src/Em2PhysicsListMessenger.cc | 2 +- .../TestEm2/src/Em2PrimaryGeneratorAction.cc | 2 +- .../TestEm2/src/Em2RunAction.cc | 64 +- .../TestEm2/src/Em2SteppingAction.cc | 2 +- .../TestEm2/src/Em2SteppingVerbose.cc | 106 +- .../TestEm2/src/Em2TrackingAction.cc | 2 +- .../TestEm2/src/Em2VisManager.cc | 2 +- .../extended/electromagnetic/TestEm2/vis.mac | 1 - .../extended/electromagnetic/TestEm3/History | 19 +- .../electromagnetic/TestEm3/TestEm3.cc | 2 +- .../electromagnetic/TestEm3/TestEm3.model.out | 2 +- .../electromagnetic/TestEm3/TestEm3.out | 19 +- .../TestEm3/include/Em3CalorHit.hh | 5 +- .../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/Em3PhysListEmModel.hh | 2 +- .../TestEm3/include/Em3PhysListEmStandard.hh | 2 +- .../TestEm3/include/Em3PhysListGeneral.hh | 2 +- .../TestEm3/include/Em3PhysListParticles.hh | 2 +- .../TestEm3/include/Em3PhysicsList.hh | 2 +- .../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/include/IonC12.hh | 2 +- .../electromagnetic/TestEm3/run09.mac | 26 + .../TestEm3/src/Em3CalorHit.cc | 17 +- .../TestEm3/src/Em3CalorimeterSD.cc | 8 +- .../TestEm3/src/Em3DetectorConstruction.cc | 77 +- .../TestEm3/src/Em3DetectorMessenger.cc | 6 +- .../TestEm3/src/Em3EventAction.cc | 32 +- .../TestEm3/src/Em3EventActionMessenger.cc | 2 +- .../TestEm3/src/Em3PhysListEmModel.cc | 2 +- .../TestEm3/src/Em3PhysListEmStandard.cc | 2 +- .../TestEm3/src/Em3PhysListGeneral.cc | 2 +- .../TestEm3/src/Em3PhysListParticles.cc | 2 +- .../TestEm3/src/Em3PhysicsList.cc | 2 + .../TestEm3/src/Em3PhysicsListMessenger.cc | 2 +- .../TestEm3/src/Em3PrimaryGeneratorAction.cc | 2 +- .../src/Em3PrimaryGeneratorMessenger.cc | 2 +- .../TestEm3/src/Em3RunAction.cc | 102 +- .../TestEm3/src/Em3RunActionMessenger.cc | 10 +- .../TestEm3/src/Em3SteppingAction.cc | 14 +- .../TestEm3/src/Em3SteppingVerbose.cc | 106 +- .../TestEm3/src/Em3VisManager.cc | 2 +- .../electromagnetic/TestEm3/src/IonC12.cc | 8 +- .../extended/electromagnetic/TestEm3/vis.mac | 4 - .../extended/electromagnetic/TestEm4/History | 9 +- .../electromagnetic/TestEm4/TestEm4.cc | 2 +- .../electromagnetic/TestEm4/TestEm4.in | 8 +- .../electromagnetic/TestEm4/TestEm4.out | 67 +- .../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 | 2 +- .../TestEm4/include/Em4SteppingAction.hh | 2 +- .../TestEm4/include/Em4SteppingVerbose.hh | 2 +- .../TestEm4/include/Em4VisManager.hh | 2 +- .../TestEm4/src/Em4DetectorConstruction.cc | 2 +- .../TestEm4/src/Em4EventAction.cc | 2 +- .../TestEm4/src/Em4EventActionMessenger.cc | 2 +- .../TestEm4/src/Em4PhysicsList.cc | 22 +- .../TestEm4/src/Em4PrimaryGeneratorAction.cc | 2 +- .../TestEm4/src/Em4RunAction.cc | 20 +- .../TestEm4/src/Em4SteppingAction.cc | 2 +- .../TestEm4/src/Em4SteppingVerbose.cc | 106 +- .../TestEm4/src/Em4VisManager.cc | 2 +- .../electromagnetic/TestEm5/GNUmakefile | 2 +- .../extended/electromagnetic/TestEm5/History | 13 +- .../extended/electromagnetic/TestEm5/README | 4 +- .../electromagnetic/TestEm5/TestEm5.cc | 2 +- .../electromagnetic/TestEm5/TestEm5.in | 7 +- .../electromagnetic/TestEm5/TestEm5.out | 134 +- .../TestEm5/geant3/include/edepo.inc | 2 +- .../electromagnetic/TestEm5/geant3/run61.dat | 16 + .../electromagnetic/TestEm5/geant3/run71.dat | 16 + .../electromagnetic/TestEm5/geant3/run81.dat | 16 + .../electromagnetic/TestEm5/geant3/run91.dat | 16 + .../TestEm5/geant3/src/gustep.F | 27 +- .../TestEm5/geant3/src/uginit.F | 1 + .../TestEm5/geant3/src/uhinit.F | 4 + .../TestEm5/include/Em5CalorHit.hh | 5 +- .../TestEm5/include/Em5CalorimeterSD.hh | 4 +- .../include/Em5DetectorConstruction.hh | 4 +- .../TestEm5/include/Em5DetectorMessenger.hh | 4 +- .../TestEm5/include/Em5EventAction.hh | 4 +- .../include/Em5EventActionMessenger.hh | 4 +- .../TestEm5/include/Em5PhysListEmModel.hh | 64 + .../TestEm5/include/Em5PhysListEmStandard.hh | 64 + .../TestEm5/include/Em5PhysListGeneral.hh | 66 + .../TestEm5/include/Em5PhysListParticles.hh | 65 + .../TestEm5/include/Em5PhysicsList.hh | 73 +- .../include/Em5PhysicsListMessenger.hh | 22 +- .../include/Em5PrimaryGeneratorAction.hh | 4 +- .../include/Em5PrimaryGeneratorMessenger.hh | 4 +- .../TestEm5/include/Em5RunAction.hh | 14 +- .../TestEm5/include/Em5RunMessenger.hh | 8 +- .../TestEm5/include/Em5StepMax.hh | 72 + .../TestEm5/include/Em5StepMaxMessenger.hh | 55 + .../TestEm5/include/Em5SteppingAction.hh | 4 +- .../TestEm5/include/Em5SteppingMessenger.hh | 4 +- .../TestEm5/include/Em5SteppingVerbose.hh | 4 +- .../TestEm5/include/Em5VisManager.hh | 4 +- .../electromagnetic/TestEm5/include/IonC12.hh | 68 + .../electromagnetic/TestEm5/run61.mac | 46 + .../electromagnetic/TestEm5/run71.mac | 43 + .../electromagnetic/TestEm5/run81.mac | 43 + .../electromagnetic/TestEm5/run91.mac | 47 + .../TestEm5/src/Em5CalorHit.cc | 13 +- .../TestEm5/src/Em5CalorimeterSD.cc | 8 +- .../TestEm5/src/Em5DetectorConstruction.cc | 18 +- .../TestEm5/src/Em5DetectorMessenger.cc | 4 +- .../TestEm5/src/Em5EventAction.cc | 8 +- .../TestEm5/src/Em5EventActionMessenger.cc | 4 +- .../TestEm5/src/Em5PhysListEmModel.cc | 117 + .../TestEm5/src/Em5PhysListEmStandard.cc | 111 + .../TestEm5/src/Em5PhysListGeneral.cc | 71 + .../TestEm5/src/Em5PhysListParticles.cc | 144 + .../TestEm5/src/Em5PhysicsList.cc | 333 +- .../TestEm5/src/Em5PhysicsListMessenger.cc | 115 +- .../TestEm5/src/Em5PrimaryGeneratorAction.cc | 4 +- .../src/Em5PrimaryGeneratorMessenger.cc | 4 +- .../TestEm5/src/Em5RunAction.cc | 35 +- .../TestEm5/src/Em5RunMessenger.cc | 32 +- .../Em5StepCut.hh => src/Em5StepMax.cc} | 74 +- .../TestEm5/src/Em5StepMaxMessenger.cc | 62 + .../TestEm5/src/Em5SteppingAction.cc | 25 +- .../TestEm5/src/Em5SteppingMessenger.cc | 6 +- .../TestEm5/src/Em5SteppingVerbose.cc | 106 +- .../TestEm5/src/Em5VisManager.cc | 4 +- .../electromagnetic/TestEm5/src/IonC12.cc | 81 + .../extended/electromagnetic/TestEm6/History | 8 +- .../electromagnetic/TestEm6/TestEm6.cc | 2 +- .../electromagnetic/TestEm6/TestEm6.out | 18 +- .../TestEm6/include/DetectorConstruction.hh | 2 +- .../TestEm6/include/DetectorMessenger.hh | 2 +- .../TestEm6/include/EventAction.hh | 2 +- .../TestEm6/include/EventActionMessenger.hh | 2 +- .../TestEm6/include/PhysicsList.hh | 2 +- .../TestEm6/include/PhysicsListMessenger.hh | 2 +- .../TestEm6/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm6/include/RunAction.hh | 2 +- .../TestEm6/include/SteppingAction.hh | 2 +- .../TestEm6/include/SteppingVerbose.hh | 2 +- .../TestEm6/include/VisManager.hh | 2 +- .../TestEm6/src/DetectorConstruction.cc | 12 +- .../TestEm6/src/DetectorMessenger.cc | 2 +- .../TestEm6/src/EventAction.cc | 6 +- .../TestEm6/src/EventActionMessenger.cc | 2 +- .../TestEm6/src/PhysicsList.cc | 2 +- .../TestEm6/src/PhysicsListMessenger.cc | 2 +- .../TestEm6/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm6/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm6/src/RunAction.cc | 6 +- .../TestEm6/src/SteppingAction.cc | 2 +- .../TestEm6/src/SteppingVerbose.cc | 106 +- .../electromagnetic/TestEm6/src/VisManager.cc | 2 +- .../electromagnetic/TestEm7/GNUmakefile | 32 + .../extended/electromagnetic/TestEm7/History | 35 + .../extended/electromagnetic/TestEm7/README | 138 + .../electromagnetic/TestEm7/TestEm7.cc | 114 + .../electromagnetic/TestEm7/TestEm7.in | 39 + .../electromagnetic/TestEm7/TestEm7.out | 263 + .../TestEm7/include/DetectorConstruction.hh | 110 + .../TestEm7/include/DetectorMessenger.hh | 73 + .../TestEm7/include/EventAction.hh | 63 + .../TestEm7/include/EventActionMessenger.hh | 57 + .../electromagnetic/TestEm7/include/IonC12.hh | 68 + .../TestEm7/include/PhysListBinaryCascade.hh | 75 + .../TestEm7/include/PhysListEmModel.hh | 64 + .../TestEm7/include/PhysListEmStandard.hh | 64 + .../TestEm7/include/PhysListGeneral.hh | 66 + .../TestEm7/include/PhysListHadronElastic.hh | 76 + .../TestEm7/include/PhysListParticles.hh | 65 + .../TestEm7/include/PhysicsList.hh | 84 + .../TestEm7/include/PhysicsListMessenger.hh | 68 + .../TestEm7/include/PrimaryGeneratorAction.hh | 67 + .../include/PrimaryGeneratorMessenger.hh | 59 + .../TestEm7/include/RunAction.hh | 91 + .../TestEm7/include/StepMax.hh | 73 + .../TestEm7/include/StepMaxMessenger.hh | 55 + .../TestEm7/include/SteppingAction.hh | 54 + .../TestEm7/include/SteppingVerbose.hh | 50 + .../TestEm7/include/VisManager.hh | 65 + .../electromagnetic/TestEm7/ionC12.mac | 38 + .../electromagnetic/TestEm7/run01.mac | 29 + .../TestEm7/src/DetectorConstruction.cc | 328 + .../TestEm7/src/DetectorMessenger.cc | 140 + .../TestEm7/src/EventAction.cc | 89 + .../TestEm7/src/EventActionMessenger.cc | 77 + .../electromagnetic/TestEm7/src/IonC12.cc | 81 + .../TestEm7/src/PhysListBinaryCascade.cc | 104 + .../TestEm7/src/PhysListEmModel.cc | 117 + .../TestEm7/src/PhysListEmStandard.cc | 111 + .../TestEm7/src/PhysListGeneral.cc | 71 + .../TestEm7/src/PhysListHadronElastic.cc | 66 + .../TestEm7/src/PhysListParticles.cc | 144 + .../TestEm7/src/PhysicsList.cc | 213 + .../TestEm7/src/PhysicsListMessenger.cc | 114 + .../TestEm7/src/PrimaryGeneratorAction.cc | 93 + .../TestEm7/src/PrimaryGeneratorMessenger.cc | 68 + .../electromagnetic/TestEm7/src/RunAction.cc | 166 + .../electromagnetic/TestEm7/src/StepMax.cc | 86 + .../TestEm7/src/StepMaxMessenger.cc | 62 + .../TestEm7/src/SteppingAction.cc | 75 + .../TestEm7/src/SteppingVerbose.cc | 177 + .../electromagnetic/TestEm7/src/VisManager.cc | 151 + .../extended/electromagnetic/TestEm7/vis.mac | 32 + .../extended/electromagnetic/TestEm8/History | 5 +- .../electromagnetic/TestEm8/TestEm8.cc | 2 +- .../electromagnetic/TestEm8/TestEm8.in | 4 +- .../electromagnetic/TestEm8/TestEm8.out | 234 +- .../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 | 6 +- .../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 | 14 +- .../TestEm8/src/Em8DetectorMessenger.cc | 2 +- .../TestEm8/src/Em8EventAction.cc | 8 +- .../TestEm8/src/Em8EventActionMessenger.cc | 2 +- .../TestEm8/src/Em8PhysicsList.cc | 36 +- .../TestEm8/src/Em8PhysicsListMessenger.cc | 2 +- .../TestEm8/src/Em8PrimaryGeneratorAction.cc | 2 +- .../src/Em8PrimaryGeneratorMessenger.cc | 2 +- .../TestEm8/src/Em8RunAction.cc | 94 +- .../TestEm8/src/Em8RunMessenger.cc | 2 +- .../electromagnetic/TestEm8/src/Em8StepCut.cc | 2 +- .../TestEm8/src/Em8SteppingAction.cc | 6 +- .../TestEm8/src/Em8SteppingMessenger.cc | 2 +- .../TestEm8/src/Em8SteppingVerbose.cc | 108 +- .../TestEm8/src/Em8VisManager.cc | 8 +- .../HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc | 2 +- .../HepMC/HepMCEx01-clhep/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx01-clhep/hepmc_pygen.out | 2 +- .../HepMCEx01-clhep/include/ExN04EMPhysics.hh | 2 +- .../include/ExN04GeneralPhysics.hh | 2 +- .../include/ExN04HadronPhysics.hh | 2 +- .../include/ExN04IonPhysics.hh | 2 +- .../include/ExN04MuonPhysics.hh | 2 +- .../include/ExN04PrimaryGeneratorAction.hh | 6 +- .../HepMCEx01-clhep/include/ExN04RunAction.hh | 2 +- .../include/ExN04SteppingVerbose.hh | 2 +- .../include/ExN04VisManager.hh | 2 +- .../include/H01PythiaInterface.hh | 4 +- .../HepMCEx01-clhep/src/ExN04EMPhysics.cc | 6 +- .../src/ExN04GeneralPhysics.cc | 6 +- .../HepMCEx01-clhep/src/ExN04HadronPhysics.cc | 2 +- .../HepMCEx01-clhep/src/ExN04IonPhysics.cc | 6 +- .../HepMCEx01-clhep/src/ExN04MuonPhysics.cc | 6 +- .../HepMCEx01-clhep/src/ExN04PhysicsList.cc | 6 +- .../HepMCEx01-clhep/src/ExN04RunAction.cc | 2 +- .../src/ExN04SteppingVerbose.cc | 106 +- .../HepMCEx01-clhep/src/ExN04VisManager.cc | 2 +- .../HepMCEx01-clhep/src/H01PythiaInterface.cc | 4 +- .../HepMCEx01-clhep/src/H01PythiaMessenger.cc | 16 +- .../HepMC/HepMCEx01/hepmcEx01.cc | 2 +- .../HepMC/HepMCEx01/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx01/hepmc_pygen.out | 2 +- .../HepMC/HepMCEx01/include/ExN04EMPhysics.hh | 2 +- .../HepMCEx01/include/ExN04GeneralPhysics.hh | 2 +- .../HepMCEx01/include/ExN04HadronPhysics.hh | 2 +- .../HepMCEx01/include/ExN04IonPhysics.hh | 2 +- .../HepMCEx01/include/ExN04MuonPhysics.hh | 2 +- .../include/ExN04PrimaryGeneratorAction.hh | 6 +- .../HepMC/HepMCEx01/include/ExN04RunAction.hh | 2 +- .../HepMCEx01/include/ExN04SteppingVerbose.hh | 2 +- .../HepMCEx01/include/ExN04VisManager.hh | 2 +- .../include/HepMCG4PythiaInterface.hh | 4 +- .../HepMC/HepMCEx01/src/ExN04EMPhysics.cc | 6 +- .../HepMCEx01/src/ExN04GeneralPhysics.cc | 6 +- .../HepMC/HepMCEx01/src/ExN04HadronPhysics.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04IonPhysics.cc | 6 +- .../HepMC/HepMCEx01/src/ExN04MuonPhysics.cc | 6 +- .../HepMC/HepMCEx01/src/ExN04PhysicsList.cc | 6 +- .../HepMC/HepMCEx01/src/ExN04RunAction.cc | 2 +- .../HepMCEx01/src/ExN04SteppingVerbose.cc | 106 +- .../HepMC/HepMCEx01/src/ExN04VisManager.cc | 2 +- .../HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc | 10 +- .../HepMCEx01/src/HepMCG4PythiaInterface.cc | 4 +- .../HepMCEx01/src/HepMCG4PythiaMessenger.cc | 12 +- .../HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc | 2 +- .../HepMC/HepMCEx02-clhep/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx02-clhep/hepmc_pygen.out | 2 +- .../HepMCEx02-clhep/include/H02EMPhysics.hh | 2 +- .../include/H02GeneralPhysics.hh | 2 +- .../include/H02HadronPhysics.hh | 2 +- .../HepMCEx02-clhep/include/H02IonPhysics.hh | 2 +- .../HepMCEx02-clhep/include/H02MuonPhysics.hh | 2 +- .../include/H02PrimaryGeneratorAction.hh | 4 +- .../include/H02PythiaInterface.hh | 4 +- .../HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc | 6 +- .../HepMCEx02-clhep/src/H02GeneralPhysics.cc | 6 +- .../HepMCEx02-clhep/src/H02HadronPhysics.cc | 2 +- .../HepMCEx02-clhep/src/H02IonPhysics.cc | 6 +- .../HepMC/HepMCEx02-clhep/src/H02MuonHit.cc | 4 +- .../HepMCEx02-clhep/src/H02MuonPhysics.cc | 6 +- .../HepMCEx02-clhep/src/H02PhysicsList.cc | 6 +- .../HepMCEx02-clhep/src/H02PythiaInterface.cc | 4 +- .../HepMCEx02-clhep/src/H02PythiaMessenger.cc | 12 +- .../HepMC/HepMCEx02/hepmcEx02.cc | 2 +- .../HepMC/HepMCEx02/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx02/hepmc_pygen.out | 2 +- .../HepMC/HepMCEx02/include/H02EMPhysics.hh | 2 +- .../HepMCEx02/include/H02GeneralPhysics.hh | 2 +- .../HepMCEx02/include/H02HadronPhysics.hh | 2 +- .../HepMC/HepMCEx02/include/H02IonPhysics.hh | 2 +- .../HepMC/HepMCEx02/include/H02MuonPhysics.hh | 2 +- .../include/H02PrimaryGeneratorAction.hh | 4 +- .../include/HepMCG4PythiaInterface.hh | 4 +- .../HepMC/HepMCEx02/src/H02EMPhysics.cc | 6 +- .../HepMC/HepMCEx02/src/H02GeneralPhysics.cc | 6 +- .../HepMC/HepMCEx02/src/H02HadronPhysics.cc | 2 +- .../HepMC/HepMCEx02/src/H02IonPhysics.cc | 6 +- .../HepMC/HepMCEx02/src/H02MuonHit.cc | 4 +- .../HepMC/HepMCEx02/src/H02MuonPhysics.cc | 6 +- .../HepMC/HepMCEx02/src/H02PhysicsList.cc | 6 +- .../HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc | 10 +- .../HepMCEx02/src/HepMCG4PythiaInterface.cc | 4 +- .../HepMCEx02/src/HepMCG4PythiaMessenger.cc | 12 +- examples/extended/field/field01/History | 7 +- examples/extended/field/field01/field01.cc | 2 +- examples/extended/field/field01/field01.out | 270 +- .../field/field01/include/F01CalorHit.hh | 6 +- .../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 | 6 +- .../field/field01/include/F01RunMessenger.hh | 2 +- .../field/field01/include/F01StepCut.hh | 16 +- .../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 | 9 +- .../field/field01/src/F01CalorimeterSD.cc | 8 +- .../field01/src/F01DetectorConstruction.cc | 39 +- .../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 | 6 +- .../field01/src/F01PhysicsListMessenger.cc | 2 +- .../field01/src/F01PrimaryGeneratorAction.cc | 2 +- .../src/F01PrimaryGeneratorMessenger.cc | 2 +- .../field/field01/src/F01RunAction.cc | 8 +- .../field/field01/src/F01RunMessenger.cc | 2 +- .../extended/field/field01/src/F01StepCut.cc | 2 +- .../field/field01/src/F01SteppingAction.cc | 6 +- .../field/field01/src/F01SteppingMessenger.cc | 6 +- .../field/field01/src/F01SteppingVerbose.cc | 118 +- .../field/field01/src/F01VisManager.cc | 2 +- examples/extended/field/field02/History | 7 +- examples/extended/field/field02/field02.cc | 2 +- examples/extended/field/field02/field02.out | 3764 +- .../field/field02/include/F02CalorHit.hh | 6 +- .../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 | 6 +- .../field/field02/include/F02RunMessenger.hh | 2 +- .../field/field02/include/F02StepCut.hh | 16 +- .../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 | 9 +- .../field/field02/src/F02CalorimeterSD.cc | 8 +- .../field02/src/F02DetectorConstruction.cc | 33 +- .../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 | 6 +- .../field02/src/F02PhysicsListMessenger.cc | 2 +- .../field02/src/F02PrimaryGeneratorAction.cc | 2 +- .../src/F02PrimaryGeneratorMessenger.cc | 2 +- .../field/field02/src/F02RunAction.cc | 8 +- .../field/field02/src/F02RunMessenger.cc | 2 +- .../extended/field/field02/src/F02StepCut.cc | 2 +- .../field/field02/src/F02SteppingAction.cc | 6 +- .../field/field02/src/F02SteppingMessenger.cc | 6 +- .../field/field02/src/F02SteppingVerbose.cc | 96 +- .../field/field02/src/F02VisManager.cc | 2 +- examples/extended/field/field03/History | 8 +- examples/extended/field/field03/field03.cc | 2 +- examples/extended/field/field03/field03.out | 1474 +- .../field/field03/include/F03CalorHit.hh | 6 +- .../field/field03/include/F03CalorimeterSD.hh | 2 +- .../include/F03DetectorConstruction.hh | 2 +- .../field03/include/F03DetectorMessenger.hh | 2 +- .../include/F03ElectroMagneticField.hh | 6 +- .../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 | 6 +- .../field/field03/include/F03RunMessenger.hh | 2 +- .../field/field03/include/F03StepCut.hh | 13 +- .../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 | 9 +- .../field/field03/src/F03CalorimeterSD.cc | 8 +- .../field03/src/F03DetectorConstruction.cc | 43 +- .../field/field03/src/F03DetectorMessenger.cc | 2 +- .../field03/src/F03ElectroMagneticField.cc | 18 +- .../field/field03/src/F03EventAction.cc | 2 +- .../field03/src/F03EventActionMessenger.cc | 2 +- .../field/field03/src/F03FieldMessenger.cc | 2 +- .../field/field03/src/F03PhysicsList.cc | 6 +- .../field03/src/F03PhysicsListMessenger.cc | 2 +- .../field03/src/F03PrimaryGeneratorAction.cc | 2 +- .../src/F03PrimaryGeneratorMessenger.cc | 2 +- .../field/field03/src/F03RunAction.cc | 8 +- .../field/field03/src/F03RunMessenger.cc | 2 +- .../extended/field/field03/src/F03StepCut.cc | 2 +- .../field/field03/src/F03SteppingAction.cc | 6 +- .../field/field03/src/F03SteppingMessenger.cc | 6 +- .../field/field03/src/F03SteppingVerbose.cc | 118 +- .../field/field03/src/F03VisManager.cc | 2 +- .../extended/g3tog4/clGeometry/clGeometry.cc | 10 +- .../extended/g3tog4/clGeometry/clGeometry.out | 10 +- .../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 | 10 +- examples/extended/g3tog4/cltog4/cltog4.out | 6 +- .../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/N03gdml/GNUmakefile | 4 +- examples/extended/gdml/N03gdml/NO3gogdml.cc | 2 +- examples/extended/gdml/N03gdml/exampleN03.out | 2 +- .../gdml/N03gdml/include/ExN03CalorHit.hh | 2 +- .../N03gdml/include/ExN03CalorimeterSD.hh | 2 +- .../include/ExN03DetectorConstruction.hh | 2 +- .../N03gdml/include/ExN03DetectorMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03EventAction.hh | 2 +- .../include/ExN03EventActionMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03PhysicsList.hh | 2 +- .../include/ExN03PrimaryGeneratorAction.hh | 2 +- .../include/ExN03PrimaryGeneratorMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03RunAction.hh | 2 +- .../N03gdml/include/ExN03SteppingAction.hh | 2 +- .../N03gdml/include/ExN03SteppingVerbose.hh | 2 +- .../gdml/N03gdml/include/ExN03VisManager.hh | 2 +- .../gdml/N03gdml/src/ExN03CalorHit.cc | 2 +- .../gdml/N03gdml/src/ExN03CalorimeterSD.cc | 2 +- .../N03gdml/src/ExN03DetectorConstruction.cc | 2 +- .../N03gdml/src/ExN03DetectorMessenger.cc | 2 +- .../gdml/N03gdml/src/ExN03EventAction.cc | 12 +- .../N03gdml/src/ExN03EventActionMessenger.cc | 2 +- .../gdml/N03gdml/src/ExN03PhysicsList.cc | 2 +- .../src/ExN03PrimaryGeneratorAction.cc | 2 +- .../src/ExN03PrimaryGeneratorMessenger.cc | 2 +- .../gdml/N03gdml/src/ExN03RunAction.cc | 2 +- .../gdml/N03gdml/src/ExN03SteppingAction.cc | 2 +- .../gdml/N03gdml/src/ExN03SteppingVerbose.cc | 104 +- .../gdml/N03gdml/src/ExN03VisManager.cc | 2 +- examples/extended/gdml/libgdml/GNUmakefile | 3 +- examples/extended/gdml/libgdml/libgdml.gmk | 4 +- .../management/include/GDMLDefineTable.hh | 2 +- .../include/GDMLExpressionEvaluator.hh | 2 +- .../management/include/GDMLLinkResolver.hh | 2 +- .../management/include/GDMLProcessor.hh | 2 +- .../management/src/GDMLExpressionEvaluator.cc | 2 +- .../management/src/GDMLLinkResolver.cc | 2 +- .../libgdml/management/src/GDMLProcessor.cc | 2 +- .../include/BooleanSolidTypeProcess.hh | 2 +- .../processes/include/MaterialTypeProcess.hh | 2 +- .../processes/include/QuantityTypeProcess.hh | 2 +- .../processes/include/ReferenceTypeProcess.hh | 2 +- .../include/SinglePlacementTypeProcess.hh | 2 +- .../processes/include/SolidTypeProcess.hh | 2 +- .../gdml/libgdml/processes/src/DProcess.cc | 2 +- .../gdml/libgdml/processes/src/DrefProcess.cc | 2 +- .../libgdml/processes/src/LibLoadProcesses.cc | 2 +- .../gdml/libgdml/processes/src/PProcess.cc | 2 +- .../gdml/libgdml/processes/src/PrefProcess.cc | 2 +- .../gdml/libgdml/processes/src/TProcess.cc | 2 +- .../gdml/libgdml/processes/src/TrefProcess.cc | 2 +- .../libgdml/processes/src/assemblyProcess.cc | 2 +- .../gdml/libgdml/processes/src/atomProcess.cc | 2 +- .../gdml/libgdml/processes/src/boxProces.cc | 2 +- .../libgdml/processes/src/childProcess.cc | 2 +- .../libgdml/processes/src/compositeProcess.cc | 2 +- .../gdml/libgdml/processes/src/coneProcess.cc | 2 +- .../libgdml/processes/src/constantProcess.cc | 2 +- .../libgdml/processes/src/defineProcess.cc | 2 +- .../libgdml/processes/src/elementProcess.cc | 2 +- .../processes/src/expressionProcess.cc | 2 +- .../libgdml/processes/src/firstProcess.cc | 2 +- .../libgdml/processes/src/fractionProcess.cc | 2 +- .../processes/src/intersectionProcess.cc | 2 +- .../libgdml/processes/src/isotopeProcess.cc | 2 +- .../libgdml/processes/src/materialProcess.cc | 2 +- .../processes/src/materialrefProcess.cc | 2 +- .../gdml/libgdml/processes/src/paraProcess.cc | 2 +- .../libgdml/processes/src/positionProcess.cc | 2 +- .../processes/src/positionrefProcess.cc | 2 +- .../libgdml/processes/src/quantityProcess.cc | 2 +- .../libgdml/processes/src/rotationProcess.cc | 2 +- .../processes/src/rotationrefProcess.cc | 2 +- .../libgdml/processes/src/secondProcess.cc | 2 +- .../libgdml/processes/src/setupProcess.cc | 2 +- .../libgdml/processes/src/solidrefProcess.cc | 2 +- .../libgdml/processes/src/sphereProcess.cc | 2 +- .../processes/src/subtractionProcess.cc | 2 +- .../gdml/libgdml/processes/src/trapProcess.cc | 2 +- .../gdml/libgdml/processes/src/trdProcess.cc | 2 +- .../gdml/libgdml/processes/src/tubeProcess.cc | 2 +- .../libgdml/processes/src/unionProcess.cc | 2 +- .../libgdml/processes/src/volumeProcess.cc | 2 +- .../libgdml/processes/src/volumerefProcess.cc | 2 +- .../libgdml/processes/src/worldProcess.cc | 2 +- .../saxana/include/ASCIIAttributeList.hh | 2 +- .../gdml/libgdml/saxana/include/Action.hh | 2 +- .../saxana/include/ActionProcessingState.hh | 2 +- .../saxana/include/ProcessingConfigurator.hh | 2 +- .../saxana/include/ProcessingContext.hh | 2 +- .../libgdml/saxana/include/ProcessingState.hh | 2 +- .../libgdml/saxana/include/RCObjectHandle.hh | 2 +- .../saxana/include/SAXComponentFactory.hh | 2 +- .../saxana/include/SAXComponentFactoryBase.hh | 2 +- .../include/SAXComponentFactoryTable.hh | 2 +- .../saxana/include/SAXComponentObject.hh | 2 +- .../saxana/include/SAXDocumentEvents.hh | 2 +- .../saxana/include/SAXElementEvents.hh | 2 +- .../libgdml/saxana/include/SAXErrorEvents.hh | 2 +- .../gdml/libgdml/saxana/include/SAXEvent.hh | 2 +- .../libgdml/saxana/include/SAXEventGun.hh | 2 +- .../gdml/libgdml/saxana/include/SAXEvents.hh | 2 +- .../gdml/libgdml/saxana/include/SAXObject.hh | 2 +- .../libgdml/saxana/include/SAXObjectBase.hh | 2 +- .../libgdml/saxana/include/SAXObjectHandle.hh | 2 +- .../saxana/include/SAXProcessingState.hh | 2 +- .../libgdml/saxana/include/SAXProcessor.hh | 2 +- .../libgdml/saxana/include/SAXStateProcess.hh | 2 +- .../libgdml/saxana/include/SAXSubscriber.hh | 2 +- .../saxana/include/SAXSubscriberPool.hh | 2 +- .../libgdml/saxana/include/StateProcessMap.hh | 2 +- .../gdml/libgdml/saxana/include/StateStack.hh | 2 +- .../gdml/libgdml/saxana/include/StatusCode.hh | 2 +- .../libgdml/saxana/src/SAXComponentFactory.cc | 2 +- .../saxana/src/SAXComponentFactoryTable.cc | 2 +- .../gdml/libgdml/saxana/src/SAXEventGun.cc | 2 +- .../gdml/libgdml/saxana/src/SAXProcessor.cc | 2 +- .../libgdml/saxana/src/SAXSubscriberPool.cc | 2 +- .../libgdml/saxana/src/StateProcessMap.cc | 2 +- .../schema/include/AssemblyVolumeType.hh | 2 +- .../gdml/libgdml/schema/include/AtomType.hh | 2 +- .../schema/include/BooleanSolidType.hh | 2 +- .../libgdml/schema/include/ConstantType.hh | 2 +- .../libgdml/schema/include/ContentGroup.hh | 2 +- .../gdml/libgdml/schema/include/DorDref.hh | 2 +- .../libgdml/schema/include/ExpressionType.hh | 2 +- .../include/IdentifiableConstantType.hh | 2 +- .../include/IdentifiableExpressionType.hh | 2 +- .../include/IdentifiableQuantityType.hh | 2 +- .../include/IdentifiableQuantityVectorType.hh | 2 +- .../include/IdentifiableThreeVectorType.hh | 2 +- .../schema/include/IdentifiableVolumeType.hh | 2 +- .../schema/include/MaterialAttributeGroup.hh | 2 +- .../schema/include/MaterialElementType.hh | 2 +- .../schema/include/MaterialIsotopeType.hh | 2 +- .../schema/include/MaterialMixtureType.hh | 2 +- .../schema/include/MaterialPropertiesGroup.hh | 2 +- .../libgdml/schema/include/MaterialType.hh | 2 +- .../gdml/libgdml/schema/include/PorPref.hh | 2 +- .../libgdml/schema/include/QuantityType.hh | 2 +- .../schema/include/QuantityVectorType.hh | 2 +- .../schema/include/ReferenceListType.hh | 2 +- .../libgdml/schema/include/ReferenceType.hh | 2 +- .../schema/include/SinglePlacementType.hh | 2 +- .../gdml/libgdml/schema/include/SolidType.hh | 2 +- .../libgdml/schema/include/TagorTagref.hh | 2 +- .../libgdml/schema/include/ThreeVectorType.hh | 2 +- .../gdml/libgdml/schema/include/TorTref.hh | 2 +- .../gdml/libgdml/schema/include/VolumeType.hh | 2 +- .../gdml/libgdml/schema/include/assembly.hh | 2 +- .../gdml/libgdml/schema/include/atom.hh | 2 +- .../schema/include/boolean_intersection.hh | 2 +- .../schema/include/boolean_subtraction.hh | 2 +- .../libgdml/schema/include/boolean_union.hh | 2 +- .../gdml/libgdml/schema/include/box.hh | 2 +- .../gdml/libgdml/schema/include/child.hh | 2 +- .../gdml/libgdml/schema/include/composite.hh | 2 +- .../gdml/libgdml/schema/include/cone.hh | 2 +- .../gdml/libgdml/schema/include/define.hh | 2 +- .../gdml/libgdml/schema/include/defineType.hh | 2 +- .../gdml/libgdml/schema/include/element.hh | 2 +- .../gdml/libgdml/schema/include/fraction.hh | 2 +- .../gdml/libgdml/schema/include/isotope.hh | 2 +- .../gdml/libgdml/schema/include/material.hh | 2 +- .../gdml/libgdml/schema/include/para.hh | 2 +- .../libgdml/schema/include/positionType.hh | 2 +- .../libgdml/schema/include/rotationType.hh | 2 +- .../gdml/libgdml/schema/include/setup.hh | 2 +- .../gdml/libgdml/schema/include/sphere.hh | 2 +- .../gdml/libgdml/schema/include/trap.hh | 2 +- .../gdml/libgdml/schema/include/trd.hh | 2 +- .../gdml/libgdml/schema/include/tube.hh | 2 +- .../gdml/libgdml/schema/include/volume.hh | 2 +- .../gdml/libgdml/schema/src/schema.cc | 2 +- .../include/BooleanSolidTypeSubscriber.hh | 2 +- .../subscribers/src/LibLoadSubscribers.cc | 2 +- .../subscribers/src/assemblySubscriber.cc | 6 +- .../libgdml/subscribers/src/boxSubscriber.cc | 2 +- .../libgdml/subscribers/src/coneSubscriber.cc | 2 +- .../subscribers/src/defineSubcriber.cc | 2 +- .../subscribers/src/elementSubscriber.cc | 2 +- .../subscribers/src/intersectionSubscriber.cc | 2 +- .../subscribers/src/isotopeSubscriber.cc | 2 +- .../subscribers/src/materialSubscriber.cc | 2 +- .../libgdml/subscribers/src/paraSubscriber.cc | 2 +- .../subscribers/src/setupSubscriber.cc | 2 +- .../subscribers/src/sphereSubscriber.cc | 2 +- .../subscribers/src/subtractionSubscriber.cc | 2 +- .../libgdml/subscribers/src/trapSubscriber.cc | 2 +- .../libgdml/subscribers/src/trdSubscriber.cc | 2 +- .../libgdml/subscribers/src/tubeSusbcriber.cc | 2 +- .../subscribers/src/unionSubscriber.cc | 2 +- .../subscribers/src/volumeSubscriber.cc | 6 +- examples/extended/gdml/sample/GNUmakefile | 4 +- examples/extended/gdml/sample/gogdml.cc | 2 +- .../include/gogdmlDetectorConstruction.hh | 2 +- .../gdml/sample/include/gogdmlPhysicsList.hh | 2 +- .../include/gogdmlPrimaryGeneratorAction.hh | 2 +- .../sample/src/gogdmlDetectorConstruction.cc | 2 +- .../gdml/sample/src/gogdmlPhysicsList.cc | 2 +- .../src/gogdmlPrimaryGeneratorAction.cc | 2 +- examples/extended/geometry/cad/GNUmakefile | 5 +- examples/extended/geometry/cad/History | 5 +- examples/extended/geometry/cad/README | 10 +- examples/extended/geometry/cad/cadex.cc | 2 +- .../cad/include/CadDetectorConstruction.hh | 2 +- .../cad/include/CadDetectorMessenger.hh | 2 +- .../geometry/cad/include/CadPhysicsList.hh | 2 +- .../cad/include/CadPrimaryGeneratorAction.hh | 2 +- .../geometry/cad/include/CadRunAction.hh | 2 +- .../geometry/cad/include/CadVisManager.hh | 2 +- .../cad/src/CadDetectorConstruction.cc | 2 +- .../geometry/cad/src/CadDetectorMessenger.cc | 2 +- .../geometry/cad/src/CadPhysicsList.cc | 2 +- .../cad/src/CadPrimaryGeneratorAction.cc | 2 +- .../extended/geometry/cad/src/CadRunAction.cc | 2 +- .../geometry/cad/src/CadVisManager.cc | 2 +- examples/extended/geometry/olap/History | 5 +- .../geometry/olap/include/G4GeoNav.hh | 18 +- .../geometry/olap/include/OlapDetConstr.hh | 2 +- .../geometry/olap/include/OlapEventAction.hh | 18 +- .../geometry/olap/include/OlapGenerator.hh | 12 +- .../geometry/olap/include/OlapLogManager.hh | 2 +- .../geometry/olap/include/OlapManager.hh | 20 +- .../olap/include/OlapManagerMessenger.hh | 2 +- .../geometry/olap/include/OlapNotify.hh | 8 +- .../geometry/olap/include/OlapPhysicsList.hh | 2 +- .../geometry/olap/include/OlapRunAction.hh | 12 +- .../olap/include/OlapSteppingAction.hh | 12 +- .../geometry/olap/include/OlapVisManager.hh | 2 +- .../geometry/olap/include/RandomDetector.hh | 2 +- .../geometry/olap/include/SolidAnalyser.hh | 30 +- .../extended/geometry/olap/include/tree.hh | 10 +- examples/extended/geometry/olap/olapex.cc | 2 +- .../extended/geometry/olap/src/G4GeoNav.cc | 26 +- .../geometry/olap/src/OlapDetConstr.cc | 6 +- .../geometry/olap/src/OlapEventAction.cc | 22 +- .../geometry/olap/src/OlapGenerator.cc | 2 +- .../geometry/olap/src/OlapLogManager.cc | 6 +- .../extended/geometry/olap/src/OlapManager.cc | 24 +- .../geometry/olap/src/OlapManagerMessenger.cc | 2 +- .../extended/geometry/olap/src/OlapNotify.cc | 2 +- .../geometry/olap/src/OlapPhysicsList.cc | 2 +- .../geometry/olap/src/OlapRunAction.cc | 14 +- .../geometry/olap/src/OlapSteppingAction.cc | 18 +- .../geometry/olap/src/OlapVisManager.cc | 2 +- .../geometry/olap/src/RandomDetector.cc | 2 +- .../geometry/olap/src/SolidAnalyser.cc | 116 +- examples/extended/medical/DICOM/14196616.dat | 4 + examples/extended/medical/DICOM/14196616.dcm | Bin 0 -> 526768 bytes examples/extended/medical/DICOM/14196616.g4 | 261 + examples/extended/medical/DICOM/14196633.dat | 4 + examples/extended/medical/DICOM/14196633.dcm | Bin 0 -> 526768 bytes examples/extended/medical/DICOM/14196633.g4 | 261 + examples/extended/medical/DICOM/14196650.dat | 4 + examples/extended/medical/DICOM/14196650.dcm | Bin 0 -> 526768 bytes examples/extended/medical/DICOM/14196650.g4 | 261 + .../extended/medical/DICOM/CT2Density.dat | 12 + examples/extended/medical/DICOM/Data.dat | 22 + examples/extended/medical/DICOM/GNUmakefile | 17 + examples/extended/medical/DICOM/PhantomCT.jpg | Bin 0 -> 189264 bytes examples/extended/medical/DICOM/README | 104 + examples/extended/medical/DICOM/default.mac | 13 + examples/extended/medical/DICOM/dicom.cc | 110 + .../DICOM/include/DicomConfiguration.hh | 98 + .../medical/DICOM/include/DicomEventAction.hh | 61 + .../medical/DICOM/include/DicomGeometry.hh | 100 + .../medical/DICOM/include/DicomHandler.hh | 89 + .../medical/DICOM/include/DicomOctree.hh | 97 + .../DICOM/include/DicomOctreeMiddleNode.hh | 60 + .../medical/DICOM/include/DicomOctreeNode.hh | 72 + .../DICOM/include/DicomOctreeTerminalNode.hh | 57 + .../DICOM/include/DicomPatientConstructor.hh | 65 + .../include/DicomPatientParameterisation.hh | 160 + .../medical/DICOM/include/DicomPhysicsList.hh | 95 + .../include/DicomPrimaryGeneratorAction.hh | 61 + .../medical/DICOM/include/DicomVisManager.hh | 60 + examples/extended/medical/DICOM/run.mac | 3 + .../medical/DICOM/src/DicomConfiguration.cc | 113 + .../medical/DICOM/src/DicomEventAction.cc | 77 + .../medical/DICOM/src/DicomGeometry.cc | 381 + .../medical/DICOM/src/DicomHandler.cc | 584 + .../extended/medical/DICOM/src/DicomOctree.cc | 151 + .../DICOM/src/DicomOctreeMiddleNode.cc | 80 + .../medical/DICOM/src/DicomOctreeNode.cc | 59 + .../DICOM/src/DicomOctreeTerminalNode.cc | 63 + .../DICOM/src/DicomPatientConstructor.cc | 117 + .../DICOM/src/DicomPatientParameterisation.cc | 320 + .../medical/DICOM/src/DicomPhysicsList.cc | 264 + .../DICOM/src/DicomPrimaryGeneratorAction.cc | 71 + .../medical/DICOM/src/DicomVisManager.cc | 70 + examples/extended/medical/DICOM/vis.mac | 10 + examples/extended/parallel/ParN02/ParN02.cc | 2 +- examples/extended/parallel/ParN02/ParTopC.icc | 2 +- .../include/ExN02ChamberParameterisation.hh | 2 +- .../include/ExN02DetectorConstruction.hh | 2 +- .../ParN02/include/ExN02DetectorMessenger.hh | 2 +- .../ParN02/include/ExN02EventAction.hh | 2 +- .../ParN02/include/ExN02MagneticField.hh | 2 +- .../ParN02/include/ExN02PhysicsList.hh | 2 +- .../include/ExN02PrimaryGeneratorAction.hh | 2 +- .../parallel/ParN02/include/ExN02RunAction.hh | 2 +- .../ParN02/include/ExN02SteppingAction.hh | 2 +- .../ParN02/include/ExN02SteppingVerbose.hh | 2 +- .../ParN02/include/ExN02TrackerHit.hh | 2 +- .../parallel/ParN02/include/ExN02TrackerSD.hh | 2 +- .../ParN02/include/ExN02VisManager.hh | 2 +- .../ParN02/include/ParExMarshaledHits.hh | 2 +- .../ParN02/include/ParMarshaledObj.hh | 2 +- .../parallel/ParN02/include/ParRandomState.hh | 2 +- .../parallel/ParN02/include/ParRunManager.hh | 2 +- .../src/ExN02ChamberParameterisation.cc | 2 +- .../ParN02/src/ExN02DetectorConstruction.cc | 2 +- .../ParN02/src/ExN02DetectorMessenger.cc | 2 +- .../parallel/ParN02/src/ExN02EventAction.cc | 2 +- .../parallel/ParN02/src/ExN02MagneticField.cc | 2 +- .../parallel/ParN02/src/ExN02PhysicsList.cc | 6 +- .../ParN02/src/ExN02PrimaryGeneratorAction.cc | 2 +- .../parallel/ParN02/src/ExN02RunAction.cc | 2 +- .../ParN02/src/ExN02SteppingAction.cc | 2 +- .../ParN02/src/ExN02SteppingVerbose.cc | 106 +- .../parallel/ParN02/src/ExN02TrackerHit.cc | 2 +- .../parallel/ParN02/src/ExN02TrackerSD.cc | 2 +- .../parallel/ParN02/src/ExN02VisManager.cc | 2 +- .../ParN02/src/ParExN02MarshaledHits.cc | 2 +- .../parallel/ParN02/src/ParMarshaledObj.cc | 2 +- .../parallel/ParN02/src/ParRunManager.cc | 6 +- examples/extended/parallel/ParN04/ParN04.cc | 2 +- examples/extended/parallel/ParN04/ParTopC.icc | 2 +- .../parallel/ParN04/include/ExN04EMPhysics.hh | 2 +- .../ParN04/include/ExN04GeneralPhysics.hh | 2 +- .../ParN04/include/ExN04HadronPhysics.hh | 6 +- .../ParN04/include/ExN04IonPhysics.hh | 2 +- .../ParN04/include/ExN04MuonPhysics.hh | 2 +- .../ParN04/include/ParExMarshaledHits.hh | 2 +- .../ParN04/include/ParMarshaledObj.hh | 6 +- .../parallel/ParN04/include/ParRandomState.hh | 2 +- .../parallel/ParN04/include/ParRunManager.hh | 2 +- .../parallel/ParN04/src/ExN04EMPhysics.cc | 6 +- .../ParN04/src/ExN04GeneralPhysics.cc | 6 +- .../parallel/ParN04/src/ExN04HadronPhysics.cc | 6 +- .../parallel/ParN04/src/ExN04IonPhysics.cc | 6 +- .../parallel/ParN04/src/ExN04MuonPhysics.cc | 6 +- .../parallel/ParN04/src/ExN04PhysicsList.cc | 6 +- .../ParN04/src/ParExN04MarshaledHits.cc | 2 +- .../parallel/ParN04/src/ParMarshaledObj.cc | 2 +- .../parallel/ParN04/src/ParRunManager.cc | 6 +- examples/extended/persistency/History | 8 +- .../persistency/PersEx01/G4PersEx01.cc | 2 +- examples/extended/persistency/PersEx01/README | 4 +- .../extended/persistency/PersEx01/README.jp | 2 +- .../PersEx01/include/Pers01CalorHit.hh | 2 +- .../PersEx01/include/Pers01CalorimeterSD.hh | 2 +- .../include/Pers01DetectorConstruction.hh | 2 +- .../include/Pers01DetectorMessenger.hh | 2 +- .../PersEx01/include/Pers01EventAction.hh | 2 +- .../include/Pers01EventActionMessenger.hh | 2 +- .../PersEx01/include/Pers01PhysicsList.hh | 2 +- .../include/Pers01PrimaryGeneratorAction.hh | 2 +- .../Pers01PrimaryGeneratorMessenger.hh | 2 +- .../PersEx01/include/Pers01RunAction.hh | 2 +- .../PersEx01/include/Pers01SteppingAction.hh | 2 +- .../PersEx01/include/Pers01SteppingVerbose.hh | 2 +- .../PersEx01/include/Pers01VisManager.hh | 2 +- .../PersEx01/src/Pers01CalorHit.cc | 2 +- .../PersEx01/src/Pers01CalorimeterSD.cc | 2 +- .../src/Pers01DetectorConstruction.cc | 2 +- .../PersEx01/src/Pers01DetectorMessenger.cc | 2 +- .../PersEx01/src/Pers01EventAction.cc | 12 +- .../src/Pers01EventActionMessenger.cc | 2 +- .../PersEx01/src/Pers01PhysicsList.cc | 2 +- .../src/Pers01PrimaryGeneratorAction.cc | 2 +- .../src/Pers01PrimaryGeneratorMessenger.cc | 2 +- .../PersEx01/src/Pers01RunAction.cc | 2 +- .../PersEx01/src/Pers01SteppingAction.cc | 2 +- .../PersEx01/src/Pers01SteppingVerbose.cc | 104 +- .../PersEx01/src/Pers01VisManager.cc | 6 +- .../persistency/rootio/config/g4rootio.pl | 14 +- .../rootio/include/G4DigitRootIO.hh | 2 +- .../rootio/include/G4EventRootIO.hh | 2 +- .../rootio/include/G4HepMCRootIO.hh | 2 +- .../persistency/rootio/include/G4HitRootIO.hh | 2 +- .../rootio/include/G4MCTruthRootIO.hh | 2 +- .../persistency/rootio/include/G4RootEvent.hh | 2 +- .../rootio/include/G4RootIOManager.hh | 2 +- .../rootio/include/G4RootTransManager.hh | 2 +- .../persistency/rootio/src/G4DigitRootIO.cc | 2 +- .../persistency/rootio/src/G4EventRootIO.cc | 2 +- .../persistency/rootio/src/G4HepMCRootIO.cc | 2 +- .../persistency/rootio/src/G4HitRootIO.cc | 2 +- .../persistency/rootio/src/G4MCTruthRootIO.cc | 2 +- .../persistency/rootio/src/G4RootEvent.cc | 2 +- .../persistency/rootio/src/G4RootIOManager.cc | 2 +- .../rootio/src/G4RootTransManager.cc | 2 +- examples/novice/N01/exampleN01.cc | 2 +- examples/novice/N01/exampleN01.out | 6 +- .../N01/include/ExN01DetectorConstruction.hh | 2 +- .../novice/N01/include/ExN01PhysicsList.hh | 2 +- .../include/ExN01PrimaryGeneratorAction.hh | 2 +- .../N01/src/ExN01DetectorConstruction.cc | 2 +- examples/novice/N01/src/ExN01PhysicsList.cc | 2 +- .../N01/src/ExN01PrimaryGeneratorAction.cc | 2 +- examples/novice/N02/History | 9 +- examples/novice/N02/exampleN02.cc | 2 +- examples/novice/N02/exampleN02.out | 7223 +- .../include/ExN02ChamberParameterisation.hh | 24 +- .../N02/include/ExN02DetectorConstruction.hh | 2 +- .../N02/include/ExN02DetectorMessenger.hh | 2 +- .../novice/N02/include/ExN02EventAction.hh | 2 +- .../novice/N02/include/ExN02MagneticField.hh | 2 +- .../novice/N02/include/ExN02PhysicsList.hh | 2 +- .../include/ExN02PrimaryGeneratorAction.hh | 2 +- examples/novice/N02/include/ExN02RunAction.hh | 2 +- .../novice/N02/include/ExN02SteppingAction.hh | 2 +- .../N02/include/ExN02SteppingVerbose.hh | 2 +- .../novice/N02/include/ExN02TrackerHit.hh | 8 +- examples/novice/N02/include/ExN02TrackerSD.hh | 2 +- .../novice/N02/include/ExN02VisManager.hh | 2 +- .../N02/src/ExN02ChamberParameterisation.cc | 7 +- .../N02/src/ExN02DetectorConstruction.cc | 2 +- .../novice/N02/src/ExN02DetectorMessenger.cc | 2 +- examples/novice/N02/src/ExN02EventAction.cc | 2 +- examples/novice/N02/src/ExN02MagneticField.cc | 2 +- examples/novice/N02/src/ExN02PhysicsList.cc | 6 +- .../N02/src/ExN02PrimaryGeneratorAction.cc | 2 +- examples/novice/N02/src/ExN02RunAction.cc | 2 +- .../novice/N02/src/ExN02SteppingAction.cc | 2 +- .../novice/N02/src/ExN02SteppingVerbose.cc | 106 +- examples/novice/N02/src/ExN02TrackerHit.cc | 9 +- examples/novice/N02/src/ExN02TrackerSD.cc | 8 +- examples/novice/N02/src/ExN02VisManager.cc | 2 +- examples/novice/N03/History | 16 +- examples/novice/N03/exampleN03.cc | 2 +- examples/novice/N03/exampleN03.out | 58 +- examples/novice/N03/include/ExN03CalorHit.hh | 10 +- .../novice/N03/include/ExN03CalorimeterSD.hh | 2 +- .../N03/include/ExN03DetectorConstruction.hh | 2 +- .../N03/include/ExN03DetectorMessenger.hh | 2 +- .../novice/N03/include/ExN03EventAction.hh | 2 +- .../N03/include/ExN03EventActionMessenger.hh | 2 +- .../novice/N03/include/ExN03PhysicsList.hh | 2 +- .../include/ExN03PrimaryGeneratorAction.hh | 2 +- .../include/ExN03PrimaryGeneratorMessenger.hh | 2 +- examples/novice/N03/include/ExN03RunAction.hh | 2 +- .../novice/N03/include/ExN03SteppingAction.hh | 2 +- .../N03/include/ExN03SteppingVerbose.hh | 2 +- .../novice/N03/include/ExN03TrackingAction.hh | 6 +- .../novice/N03/include/ExN03VisManager.hh | 2 +- examples/novice/N03/src/ExN03CalorHit.cc | 9 +- examples/novice/N03/src/ExN03CalorimeterSD.cc | 8 +- .../N03/src/ExN03DetectorConstruction.cc | 57 +- .../novice/N03/src/ExN03DetectorMessenger.cc | 2 +- examples/novice/N03/src/ExN03EventAction.cc | 12 +- .../N03/src/ExN03EventActionMessenger.cc | 2 +- examples/novice/N03/src/ExN03PhysicsList.cc | 16 +- .../N03/src/ExN03PrimaryGeneratorAction.cc | 2 +- .../N03/src/ExN03PrimaryGeneratorMessenger.cc | 2 +- examples/novice/N03/src/ExN03RunAction.cc | 2 +- .../novice/N03/src/ExN03SteppingAction.cc | 2 +- .../novice/N03/src/ExN03SteppingVerbose.cc | 104 +- .../novice/N03/src/ExN03TrackingAction.cc | 2 +- examples/novice/N03/src/ExN03VisManager.cc | 2 +- examples/novice/N03/visTutor/heprep.mac | 30 + examples/novice/N04/History | 8 +- examples/novice/N04/exampleN04.EMtest.out | 23 +- examples/novice/N04/exampleN04.cc | 2 +- examples/novice/N04/exampleN04.out | 17 +- .../novice/N04/include/ExN04CalorimeterHit.hh | 2 +- .../ExN04CalorimeterParametrisation.hh | 23 +- examples/novice/N04/include/ExN04DummySD.hh | 14 +- examples/novice/N04/include/ExN04EMPhysics.hh | 2 +- .../novice/N04/include/ExN04GeneralPhysics.hh | 2 +- .../novice/N04/include/ExN04HadronPhysics.hh | 6 +- .../novice/N04/include/ExN04IonPhysics.hh | 2 +- examples/novice/N04/include/ExN04MuonHit.hh | 2 +- .../novice/N04/include/ExN04MuonPhysics.hh | 2 +- examples/novice/N04/include/ExN04RunAction.hh | 2 +- .../N04/include/ExN04SteppingVerbose.hh | 2 +- .../novice/N04/include/ExN04TrackerHit.hh | 4 +- .../include/ExN04TrackerParametrisation.hh | 23 +- .../novice/N04/include/ExN04VisManager.hh | 2 +- .../novice/N04/src/ExN04CalorimeterHit.cc | 3 +- .../src/ExN04CalorimeterParametrisation.cc | 7 +- examples/novice/N04/src/ExN04CalorimeterSD.cc | 12 +- .../N04/src/ExN04DetectorConstruction.cc | 8 +- examples/novice/N04/src/ExN04EMPhysics.cc | 6 +- .../novice/N04/src/ExN04GeneralPhysics.cc | 6 +- examples/novice/N04/src/ExN04HadronPhysics.cc | 9 +- examples/novice/N04/src/ExN04IonPhysics.cc | 6 +- examples/novice/N04/src/ExN04MuonHit.cc | 5 +- examples/novice/N04/src/ExN04MuonPhysics.cc | 6 +- examples/novice/N04/src/ExN04MuonSD.cc | 4 +- examples/novice/N04/src/ExN04PhysicsList.cc | 6 +- .../N04/src/ExN04PrimaryGeneratorAction.cc | 3 +- examples/novice/N04/src/ExN04RunAction.cc | 2 +- .../novice/N04/src/ExN04SteppingVerbose.cc | 106 +- examples/novice/N04/src/ExN04TrackerHit.cc | 5 +- .../N04/src/ExN04TrackerParametrisation.cc | 5 +- examples/novice/N04/src/ExN04TrackerSD.cc | 10 +- examples/novice/N04/src/ExN04VisManager.cc | 2 +- examples/novice/N05/History | 5 +- examples/novice/N05/exampleN05.cc | 2 +- examples/novice/N05/exampleN05.out | 256 +- .../novice/N05/include/ExN05CalorimeterHit.hh | 9 +- .../novice/N05/include/ExN05CalorimeterSD.hh | 2 +- .../N05/include/ExN05DetectorConstruction.hh | 2 +- .../N05/include/ExN05DetectorMessenger.hh | 2 +- .../novice/N05/include/ExN05EMShowerModel.hh | 8 +- .../novice/N05/include/ExN05EnergySpot.hh | 2 +- .../novice/N05/include/ExN05EventAction.hh | 2 +- .../N05/include/ExN05EventActionMessenger.hh | 2 +- .../novice/N05/include/ExN05MaxTimeCuts.hh | 2 +- .../novice/N05/include/ExN05MinEkineCuts.hh | 2 +- .../novice/N05/include/ExN05MinRangeCuts.hh | 2 +- .../novice/N05/include/ExN05PhysicsList.hh | 2 +- examples/novice/N05/include/ExN05PiModel.hh | 2 +- .../N05/include/ExN05PionShowerModel.hh | 8 +- .../include/ExN05PrimaryGeneratorAction.hh | 2 +- examples/novice/N05/include/ExN05RunAction.hh | 2 +- .../novice/N05/include/ExN05SpecialCuts.hh | 2 +- .../novice/N05/include/ExN05SteppingAction.hh | 2 +- .../include/ExN05SteppingActionMessenger.hh | 2 +- .../novice/N05/include/ExN05VisManager.hh | 2 +- .../novice/N05/src/ExN05CalorimeterHit.cc | 9 +- examples/novice/N05/src/ExN05CalorimeterSD.cc | 31 +- .../N05/src/ExN05DetectorConstruction.cc | 2 +- .../novice/N05/src/ExN05DetectorMessenger.cc | 10 +- examples/novice/N05/src/ExN05EMShowerModel.cc | 2 +- examples/novice/N05/src/ExN05EnergySpot.cc | 2 +- examples/novice/N05/src/ExN05EventAction.cc | 2 +- .../N05/src/ExN05EventActionMessenger.cc | 6 +- examples/novice/N05/src/ExN05MaxTimeCuts.cc | 10 +- examples/novice/N05/src/ExN05MinEkineCuts.cc | 10 +- examples/novice/N05/src/ExN05MinRangeCuts.cc | 10 +- examples/novice/N05/src/ExN05PhysicsList.cc | 6 +- examples/novice/N05/src/ExN05PiModel.cc | 2 +- .../novice/N05/src/ExN05PionShowerModel.cc | 9 +- .../N05/src/ExN05PrimaryGeneratorAction.cc | 2 +- examples/novice/N05/src/ExN05RunAction.cc | 2 +- examples/novice/N05/src/ExN05SpecialCuts.cc | 37 +- .../novice/N05/src/ExN05SteppingAction.cc | 2 +- .../N05/src/ExN05SteppingActionMessenger.cc | 6 +- examples/novice/N05/src/ExN05VisManager.cc | 2 +- examples/novice/N06/exampleN06.cc | 2 +- examples/novice/N06/exampleN06.out | 44 +- .../N06/include/ExN06DetectorConstruction.hh | 2 +- .../novice/N06/include/ExN06EventAction.hh | 2 +- .../novice/N06/include/ExN06PhysicsList.hh | 2 +- .../N06/include/ExN06PhysicsListMessenger.hh | 2 +- .../include/ExN06PrimaryGeneratorAction.hh | 2 +- .../include/ExN06PrimaryGeneratorMessenger.hh | 2 +- examples/novice/N06/include/ExN06RunAction.hh | 2 +- .../novice/N06/include/ExN06StackingAction.hh | 2 +- .../N06/include/ExN06SteppingVerbose.hh | 2 +- .../novice/N06/include/ExN06VisManager.hh | 2 +- .../N06/src/ExN06DetectorConstruction.cc | 2 +- examples/novice/N06/src/ExN06EventAction.cc | 2 +- examples/novice/N06/src/ExN06PhysicsList.cc | 6 +- .../N06/src/ExN06PhysicsListMessenger.cc | 2 +- .../N06/src/ExN06PrimaryGeneratorMessenger.cc | 2 +- .../N06/src/ExN06PrimaryGeneratoraction.cc | 2 +- examples/novice/N06/src/ExN06RunAction.cc | 2 +- .../novice/N06/src/ExN06StackingAction.cc | 2 +- .../novice/N06/src/ExN06SteppingVerbose.cc | 104 +- examples/novice/N06/src/ExN06VisManager.cc | 2 +- examples/novice/N07/History | 8 +- examples/novice/N07/exampleN07.cc | 2 +- examples/novice/N07/exampleN07.out | 228 +- examples/novice/N07/include/ExN07CalorHit.hh | 2 +- .../novice/N07/include/ExN07CalorimeterSD.hh | 2 +- .../N07/include/ExN07DetectorConstruction.hh | 2 +- .../N07/include/ExN07DetectorMessenger.hh | 2 +- .../novice/N07/include/ExN07EventAction.hh | 2 +- .../N07/include/ExN07GapParameterisation.hh | 2 +- .../novice/N07/include/ExN07PhysicsList.hh | 2 +- .../include/ExN07PrimaryGeneratorAction.hh | 2 +- examples/novice/N07/include/ExN07Run.hh | 2 +- examples/novice/N07/include/ExN07RunAction.hh | 2 +- .../novice/N07/include/ExN07VisManager.hh | 2 +- examples/novice/N07/src/ExN07CalorHit.cc | 8 +- examples/novice/N07/src/ExN07CalorimeterSD.cc | 8 +- .../N07/src/ExN07DetectorConstruction.cc | 2 +- .../novice/N07/src/ExN07DetectorMessenger.cc | 2 +- examples/novice/N07/src/ExN07EventAction.cc | 12 +- .../N07/src/ExN07GapParameterisation.cc | 9 +- examples/novice/N07/src/ExN07PhysicsList.cc | 2 +- .../N07/src/ExN07PrimaryGeneratorAction.cc | 2 +- examples/novice/N07/src/ExN07Run.cc | 2 +- examples/novice/N07/src/ExN07RunAction.cc | 2 +- examples/novice/N07/src/ExN07VisManager.cc | 2 +- source/digits+hits/History | 8 +- .../detector/include/G4CellScoreComposer.hh | 6 +- .../detector/include/G4CellScoreValues.hh | 2 +- .../detector/include/G4CellStoreScorer.hh | 2 +- .../include/G4CollectionNameVector.hh | 8 +- .../digits+hits/detector/include/G4HCtable.hh | 10 +- .../detector/include/G4SDManager.hh | 2 +- .../detector/include/G4SDStructure.hh | 10 +- .../detector/include/G4SDmessenger.hh | 2 +- .../detector/include/G4SensitiveVolumeList.hh | 18 +- .../include/G4SensitiveVolumeList.icc | 12 +- .../detector/include/G4TrackLogger.hh | 8 +- .../detector/include/G4VReadOutGeometry.hh | 2 +- .../detector/include/G4VSensitiveDetector.hh | 8 +- .../detector/src/G4CellScoreComposer.cc | 6 +- .../detector/src/G4CellStoreScorer.cc | 2 +- source/digits+hits/detector/src/G4HCtable.cc | 6 +- .../digits+hits/detector/src/G4SDManager.cc | 2 +- .../digits+hits/detector/src/G4SDStructure.cc | 12 +- .../digits+hits/detector/src/G4SDmessenger.cc | 2 +- .../detector/src/G4SensitiveVolumeList.cc | 2 +- .../digits+hits/detector/src/G4TrackLogger.cc | 2 +- .../detector/src/G4VReadOutGeometry.cc | 2 +- .../detector/src/G4VSensitiveDetector.cc | 28 +- .../digits/include/G4DCofThisEvent.hh | 8 +- .../digits/include/G4TDigiCollection.hh | 40 +- source/digits+hits/digits/include/G4VDigi.hh | 2 +- .../digits/include/G4VDigiCollection.hh | 2 +- .../digits+hits/digits/src/G4DCofThisEvent.cc | 8 +- .../digits/src/G4TDigiCollection.cc | 2 +- source/digits+hits/digits/src/G4VDigi.cc | 6 +- .../digits/src/G4VDigiCollection.cc | 2 +- source/digits+hits/hits/History | 5 +- .../hits/include/G4HCofThisEvent.hh | 8 +- .../hits/include/G4THitsCollection.hh | 44 +- source/digits+hits/hits/include/G4VHit.hh | 12 +- .../hits/include/G4VHitsCollection.hh | 6 +- .../digits+hits/hits/src/G4HCofThisEvent.cc | 8 +- .../digits+hits/hits/src/G4THitsCollection.cc | 2 +- source/digits+hits/hits/src/G4VHit.cc | 6 +- .../digits+hits/hits/src/G4VHitsCollection.cc | 2 +- source/event/History | 12 +- source/event/include/G4CellScorer.hh | 2 +- source/event/include/G4CellScorerStore.hh | 8 +- .../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 | 2 +- source/event/include/G4HEPEvtInterface.hh | 12 +- source/event/include/G4HEPEvtParticle.hh | 2 +- source/event/include/G4HepMCAsciiReader.hh | 6 +- source/event/include/G4ParticleGun.hh | 2 +- .../event/include/G4ParticleGunMessenger.hh | 2 +- source/event/include/G4PrimaryParticle.hh | 2 +- source/event/include/G4PrimaryTransformer.hh | 2 +- source/event/include/G4PrimaryVertex.hh | 2 +- source/event/include/G4ScoreTable.hh | 20 +- source/event/include/G4Scorer.hh | 2 +- source/event/include/G4StackManager.hh | 6 +- source/event/include/G4StackedTrack.hh | 2 +- source/event/include/G4StackingMessenger.hh | 2 +- source/event/include/G4TrackStack.hh | 2 +- source/event/include/G4TrajectoryContainer.hh | 8 +- source/event/include/G4UserEventAction.hh | 2 +- source/event/include/G4UserStackingAction.hh | 2 +- source/event/include/G4VPrimaryGenerator.hh | 2 +- source/event/include/eventgendefs.hh | 2 +- source/event/include/evmandefs.hh | 2 +- source/event/include/trajectoryControl.hh | 2 +- source/event/src/G4CellScorer.cc | 6 +- source/event/src/G4CellScorerStore.cc | 2 +- source/event/src/G4EvManMessenger.cc | 2 +- source/event/src/G4Event.cc | 2 +- source/event/src/G4EventManager.cc | 12 +- source/event/src/G4GeneralParticleSource.cc | 2 +- .../src/G4GeneralParticleSourceMessenger.cc | 8 +- source/event/src/G4HEPEvtInterface.cc | 7 +- source/event/src/G4HEPEvtParticle.cc | 10 +- source/event/src/G4HepMCAsciiReader.cc | 4 +- source/event/src/G4ParticleGun.cc | 2 +- source/event/src/G4ParticleGunMessenger.cc | 8 +- source/event/src/G4PrimaryParticle.cc | 10 +- source/event/src/G4PrimaryTransformer.cc | 2 +- source/event/src/G4PrimaryVertex.cc | 10 +- source/event/src/G4ScoreTable.cc | 54 +- source/event/src/G4Scorer.cc | 2 +- source/event/src/G4StackManager.cc | 2 +- source/event/src/G4StackedTrack.cc | 10 +- source/event/src/G4StackingMessenger.cc | 2 +- source/event/src/G4TrackStack.cc | 2 +- source/event/src/G4TrajectoryContainer.cc | 2 +- source/event/src/G4UserEventAction.cc | 8 +- source/event/src/G4UserStackingAction.cc | 6 +- source/event/src/G4VPrimaryGenerator.cc | 2 +- source/g3tog4/History | 6 +- source/g3tog4/include/G3DetTable.hh | 8 +- source/g3tog4/include/G3DetTableEntry.hh | 6 +- source/g3tog4/include/G3Division.hh | 2 +- source/g3tog4/include/G3EleTable.hh | 2 +- source/g3tog4/include/G3G4Interface.hh | 2 +- source/g3tog4/include/G3MatTable.hh | 8 +- source/g3tog4/include/G3MatTableEntry.hh | 2 +- source/g3tog4/include/G3MedTable.hh | 8 +- source/g3tog4/include/G3MedTableEntry.hh | 2 +- source/g3tog4/include/G3PartTable.hh | 8 +- source/g3tog4/include/G3Pos.hh | 2 +- source/g3tog4/include/G3RotTable.hh | 8 +- source/g3tog4/include/G3RotTableEntry.hh | 2 +- source/g3tog4/include/G3SensVolVector.hh | 8 +- source/g3tog4/include/G3VolTable.hh | 8 +- source/g3tog4/include/G3VolTableEntry.hh | 18 +- source/g3tog4/include/G3toG4.hh | 2 +- source/g3tog4/include/G3toG4.inc | 2 +- source/g3tog4/include/G3toG4BuildTree.hh | 2 +- source/g3tog4/include/G3toG4MANY.hh | 8 +- source/g3tog4/include/G3toG4MakeSolid.hh | 2 +- source/g3tog4/include/G3toG4RotationMatrix.hh | 2 +- source/g3tog4/include/gcbank.inc | 2 +- source/g3tog4/src/G3DetTable.cc | 8 +- source/g3tog4/src/G3DetTableEntry.cc | 2 +- source/g3tog4/src/G3Division.cc | 42 +- source/g3tog4/src/G3EleTable.cc | 7 +- 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 | 18 +- source/g3tog4/src/G3PartTable.cc | 17 +- source/g3tog4/src/G3Pos.cc | 2 +- source/g3tog4/src/G3RotTable.cc | 2 +- source/g3tog4/src/G3RotTableEntry.cc | 2 +- source/g3tog4/src/G3VolTable.cc | 10 +- source/g3tog4/src/G3VolTableEntry.cc | 8 +- source/g3tog4/src/G3fillParams.cc.archive | 6 +- 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 | 14 +- 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 | 21 +- 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 | 8 +- source/g3tog4/src/clparse.cc | 12 +- 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 | 19 +- source/geometry/biasing/History | 6 +- .../biasing/include/G4GeometryCell.hh | 2 +- .../biasing/include/G4GeometryCellComp.hh | 2 +- .../include/G4GeometryCellImportance.hh | 10 +- .../biasing/include/G4GeometryCellStep.hh | 2 +- .../include/G4GeometryCellStepStream.hh | 8 +- source/geometry/biasing/include/G4IStore.hh | 2 +- .../biasing/include/G4ImportanceAlgorithm.hh | 2 +- .../biasing/include/G4ImportanceFinder.hh | 2 +- .../include/G4ImportanceSplitExaminer.hh | 2 +- .../biasing/include/G4Nsplit_Weight.hh | 6 +- .../biasing/include/G4ParallelNavigator.hh | 2 +- .../biasing/include/G4ParallelStepper.hh | 2 +- .../biasing/include/G4ParallelWorld.hh | 2 +- .../geometry/biasing/include/G4VCellScorer.hh | 2 +- .../biasing/include/G4VCellScorerStore.hh | 2 +- .../biasing/include/G4VGCellFinder.hh | 2 +- source/geometry/biasing/include/G4VIStore.hh | 2 +- .../biasing/include/G4VImportanceAlgorithm.hh | 2 +- .../include/G4VImportanceSplitExaminer.hh | 2 +- .../geometry/biasing/include/G4VPGeoDriver.hh | 2 +- .../biasing/include/G4VParallelStepper.hh | 2 +- source/geometry/biasing/include/G4VScorer.hh | 2 +- .../include/G4VWeightWindowAlgorithm.hh | 2 +- .../include/G4WeightWindowAlgorithm.hh | 2 +- source/geometry/biasing/src/G4GeometryCell.cc | 2 +- .../biasing/src/G4GeometryCellComp.cc | 2 +- .../biasing/src/G4GeometryCellImportance.cc | 6 +- .../biasing/src/G4GeometryCellStep.cc | 2 +- .../biasing/src/G4GeometryCellStepStream.cc | 8 +- source/geometry/biasing/src/G4IStore.cc | 2 +- .../biasing/src/G4ImportanceAlgorithm.cc | 9 +- .../biasing/src/G4ImportanceFinder.cc | 9 +- .../biasing/src/G4ImportanceSplitExaminer.cc | 2 +- .../geometry/biasing/src/G4Nsplit_Weight.cc | 6 +- .../biasing/src/G4ParallelNavigator.cc | 8 +- .../geometry/biasing/src/G4ParallelStepper.cc | 2 +- .../geometry/biasing/src/G4ParallelWorld.cc | 2 +- source/geometry/biasing/src/G4VCellScorer.cc | 2 +- .../biasing/src/G4VCellScorerStore.cc | 2 +- source/geometry/biasing/src/G4VGCellFinder.cc | 2 +- source/geometry/biasing/src/G4VIStore.cc | 2 +- .../biasing/src/G4VImportanceAlgorithm.cc | 2 +- .../biasing/src/G4VImportanceSplitExaminer.cc | 2 +- source/geometry/biasing/src/G4VPGeoDriver.cc | 2 +- .../biasing/src/G4VParallelStepper.cc | 2 +- source/geometry/biasing/src/G4VScorer.cc | 2 +- .../biasing/src/G4VWeightWindowAlgorithm.cc | 2 +- .../biasing/src/G4WeightWindowAlgorithm.cc | 2 +- source/geometry/magneticfield/History | 80 +- .../magneticfield/include/G4CashKarpRKF45.hh | 2 +- .../magneticfield/include/G4ChordFinder.hh | 14 +- .../magneticfield/include/G4ChordFinder.icc | 13 +- .../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 | 38 +- .../magneticfield/include/G4FieldManager.icc | 6 +- .../magneticfield/include/G4FieldTrack.hh | 8 +- .../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 | 6 +- .../include/G4MagHelicalStepper.hh | 2 +- .../include/G4MagHelicalStepper.icc | 2 +- .../include/G4MagIntegratorDriver.hh | 36 +- .../include/G4MagIntegratorDriver.icc | 10 +- .../include/G4MagIntegratorStepper.hh | 2 +- .../include/G4MagIntegratorStepper.icc | 2 +- .../magneticfield/include/G4Mag_EqRhs.hh | 2 +- .../magneticfield/include/G4Mag_SpinEqRhs.hh | 2 +- .../magneticfield/include/G4Mag_UsualEqRhs.hh | 2 +- .../magneticfield/include/G4MagneticField.hh | 2 +- .../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 | 141 +- .../magneticfield/src/G4ClassicalRK4.cc | 6 +- .../src/G4ElectroMagneticField.cc | 2 +- .../magneticfield/src/G4EquationOfMotion.cc | 2 +- .../magneticfield/src/G4ExplicitEuler.cc | 2 +- .../magneticfield/src/G4FieldManager.cc | 24 +- .../magneticfield/src/G4FieldTrack.cc | 6 +- .../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 | 6 +- .../magneticfield/src/G4LineSection.cc | 2 +- .../magneticfield/src/G4MagErrorStepper.cc | 2 +- .../magneticfield/src/G4MagHelicalStepper.cc | 2 +- .../src/G4MagIntegratorDriver.cc | 378 +- .../src/G4MagIntegratorStepper.cc | 6 +- .../geometry/magneticfield/src/G4Mag_EqRhs.cc | 2 +- .../magneticfield/src/G4Mag_UsualEqRhs.cc | 2 +- .../magneticfield/src/G4MagneticField.cc | 2 +- .../magneticfield/src/G4RKG3_Stepper.cc | 2 +- .../magneticfield/src/G4SimpleHeum.cc | 2 +- .../magneticfield/src/G4SimpleRunge.cc | 6 +- .../src/G4UniformElectricField.cc | 2 +- .../magneticfield/src/G4UniformMagField.cc | 2 +- source/geometry/management/History | 27 +- .../management/include/G4AffineTransform.hh | 2 +- .../management/include/G4AffineTransform.icc | 2 +- .../management/include/G4AssemblyTriplet.hh | 2 +- .../management/include/G4AssemblyTriplet.icc | 2 +- .../management/include/G4AssemblyVolume.hh | 10 +- .../management/include/G4AssemblyVolume.icc | 2 +- .../management/include/G4DrawVoxels.hh | 2 +- .../management/include/G4GeometryManager.hh | 8 +- .../management/include/G4LogicalSurface.hh | 2 +- .../management/include/G4LogicalSurface.icc | 2 +- .../management/include/G4LogicalVolume.hh | 13 +- .../management/include/G4LogicalVolume.icc | 22 +- .../include/G4LogicalVolumeStore.hh | 8 +- .../management/include/G4PVParameterised.hh | 48 +- .../management/include/G4PVPlacement.hh | 102 +- .../management/include/G4PVReplica.hh | 49 +- .../include/G4PhysicalVolumeStore.hh | 15 +- .../geometry/management/include/G4Region.hh | 14 +- .../geometry/management/include/G4Region.icc | 8 +- .../management/include/G4RegionStore.hh | 8 +- .../management/include/G4SmartVoxelHeader.hh | 20 +- .../management/include/G4SmartVoxelHeader.icc | 2 +- .../management/include/G4SmartVoxelNode.hh | 10 +- .../management/include/G4SmartVoxelNode.icc | 2 +- .../management/include/G4SmartVoxelProxy.hh | 2 +- .../management/include/G4SmartVoxelProxy.icc | 2 +- .../management/include/G4SmartVoxelStat.hh | 10 +- .../management/include/G4SolidStore.hh | 8 +- .../management/include/G4TouchableHandle.hh | 2 +- .../include/G4VPVParameterisation.hh | 2 +- .../management/include/G4VPhysicalVolume.hh | 36 +- .../management/include/G4VPhysicalVolume.icc | 124 +- .../geometry/management/include/G4VSolid.hh | 12 +- .../geometry/management/include/G4VSolid.icc | 2 +- .../management/include/G4VTouchable.hh | 2 +- .../management/include/G4VTouchable.icc | 2 +- .../management/include/G4VoxelLimits.hh | 8 +- .../management/include/G4VoxelLimits.icc | 2 +- .../geometry/management/include/meshdefs.hh | 2 +- .../geometry/management/include/voxeldefs.hh | 2 +- .../management/src/G4AssemblyVolume.cc | 14 +- .../geometry/management/src/G4DrawVoxels.cc | 2 +- .../management/src/G4GeometryManager.cc | 56 +- .../management/src/G4LogicalVolume.cc | 5 +- .../management/src/G4LogicalVolumeStore.cc | 10 +- .../management/src/G4PVParameterised.cc | 2 +- .../geometry/management/src/G4PVPlacement.cc | 28 +- source/geometry/management/src/G4PVReplica.cc | 11 +- .../management/src/G4PhysicalVolumeStore.cc | 25 +- source/geometry/management/src/G4Region.cc | 16 +- .../geometry/management/src/G4RegionStore.cc | 8 +- .../management/src/G4SmartVoxelHeader.cc | 6 +- .../management/src/G4SmartVoxelNode.cc | 2 +- .../management/src/G4SmartVoxelProxy.cc | 2 +- .../management/src/G4SmartVoxelStat.cc | 2 +- .../geometry/management/src/G4SolidStore.cc | 8 +- .../management/src/G4VPVParameterisation.cc | 2 +- .../management/src/G4VPhysicalVolume.cc | 28 +- source/geometry/management/src/G4VSolid.cc | 6 +- .../geometry/management/src/G4VoxelLimits.cc | 6 +- source/geometry/solids/BREPS/History | 10 +- .../solids/BREPS/include/G4Assembly.hh | 8 +- .../solids/BREPS/include/G4Assembly.icc | 2 +- .../BREPS/include/G4Axis2Placement3D.hh | 2 +- .../BREPS/include/G4Axis2Placement3D.icc | 2 +- .../solids/BREPS/include/G4BREPSolid.hh | 6 +- .../solids/BREPS/include/G4BREPSolid.icc | 2 +- .../solids/BREPS/include/G4BREPSolidBox.hh | 6 +- .../solids/BREPS/include/G4BREPSolidCone.hh | 6 +- .../BREPS/include/G4BREPSolidCylinder.hh | 6 +- .../BREPS/include/G4BREPSolidOpenPCone.hh | 6 +- .../solids/BREPS/include/G4BREPSolidPCone.hh | 6 +- .../BREPS/include/G4BREPSolidPolyhedra.hh | 6 +- .../solids/BREPS/include/G4BREPSolidSphere.hh | 6 +- .../solids/BREPS/include/G4BREPSolidTorus.hh | 6 +- .../solids/BREPS/include/G4BSplineCurve.hh | 6 +- .../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 | 6 +- .../solids/BREPS/include/G4ConicalSurface.icc | 2 +- .../solids/BREPS/include/G4ControlPoints.hh | 2 +- .../solids/BREPS/include/G4ControlPoints.icc | 2 +- .../solids/BREPS/include/G4ConvexHull.hh | 2 +- .../geometry/solids/BREPS/include/G4Curve.hh | 2 +- .../geometry/solids/BREPS/include/G4Curve.icc | 2 +- .../solids/BREPS/include/G4CurvePoint.hh | 2 +- .../solids/BREPS/include/G4CurvePoint.icc | 2 +- .../BREPS/include/G4CurveRayIntersection.hh | 2 +- .../BREPS/include/G4CurveRayIntersection.icc | 2 +- .../solids/BREPS/include/G4CurveVector.hh | 8 +- .../BREPS/include/G4CylindricalSurface.hh | 6 +- .../BREPS/include/G4CylindricalSurface.icc | 2 +- .../solids/BREPS/include/G4Ellipse.hh | 2 +- .../solids/BREPS/include/G4Ellipse.icc | 2 +- .../solids/BREPS/include/G4FConicalSurface.hh | 6 +- .../BREPS/include/G4FConicalSurface.icc | 2 +- .../BREPS/include/G4FCylindricalSurface.hh | 6 +- .../BREPS/include/G4FCylindricalSurface.icc | 2 +- .../geometry/solids/BREPS/include/G4FPlane.hh | 2 +- .../solids/BREPS/include/G4FPlane.icc | 2 +- .../solids/BREPS/include/G4Globals.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.icc | 2 +- .../solids/BREPS/include/G4KnotVector.hh | 2 +- .../solids/BREPS/include/G4KnotVector.icc | 2 +- .../geometry/solids/BREPS/include/G4Line.hh | 2 +- .../geometry/solids/BREPS/include/G4Line.icc | 2 +- .../solids/BREPS/include/G4OsloMatrix.hh | 2 +- .../solids/BREPS/include/G4OsloMatrix.icc | 2 +- .../solids/BREPS/include/G4Parabola.hh | 2 +- .../solids/BREPS/include/G4Parabola.icc | 2 +- .../solids/BREPS/include/G4PlacedSolid.hh | 6 +- .../solids/BREPS/include/G4PlacedSolid.icc | 6 +- .../solids/BREPS/include/G4PlacementVector.hh | 8 +- .../geometry/solids/BREPS/include/G4Plane.hh | 2 +- .../solids/BREPS/include/G4Point3DVector.hh | 8 +- .../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 | 6 +- .../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 | 8 +- .../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 | 6 +- .../solids/BREPS/src/G4BREPSolidBox.cc | 6 +- .../solids/BREPS/src/G4BREPSolidCone.cc | 6 +- .../solids/BREPS/src/G4BREPSolidCylinder.cc | 6 +- .../solids/BREPS/src/G4BREPSolidOpenPCone.cc | 6 +- .../solids/BREPS/src/G4BREPSolidPCone.cc | 15 +- .../solids/BREPS/src/G4BREPSolidPolyhedra.cc | 20 +- .../solids/BREPS/src/G4BREPSolidSphere.cc | 6 +- .../solids/BREPS/src/G4BREPSolidTorus.cc | 6 +- .../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 | 16 +- .../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 | 8 +- .../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 | 8 +- source/geometry/solids/BREPS/src/G4Ellipse.cc | 6 +- .../solids/BREPS/src/G4FConicalSurface.cc | 10 +- .../solids/BREPS/src/G4FCylindricalSurface.cc | 8 +- source/geometry/solids/BREPS/src/G4FPlane.cc | 2 +- .../geometry/solids/BREPS/src/G4Hyperbola.cc | 2 +- .../geometry/solids/BREPS/src/G4KnotVector.cc | 2 +- source/geometry/solids/BREPS/src/G4Line.cc | 2 +- .../geometry/solids/BREPS/src/G4OsloMatrix.cc | 2 +- .../geometry/solids/BREPS/src/G4Parabola.cc | 2 +- .../solids/BREPS/src/G4PlacedSolid.cc | 2 +- .../geometry/solids/BREPS/src/G4PointRat.cc | 2 +- .../solids/BREPS/src/G4ProjectedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Ray.cc | 2 +- .../BREPS/src/G4RectangularTrimmedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Sort.cc | 2 +- .../solids/BREPS/src/G4SphericalSurface.cc | 8 +- source/geometry/solids/BREPS/src/G4Surface.cc | 6 +- .../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 | 10 +- .../solids/BREPS/src/G4ToroidalSurface.cc | 2 +- source/geometry/solids/Boolean/History | 16 +- .../solids/Boolean/include/G4BooleanSolid.hh | 6 +- .../Boolean/include/G4DisplacedSolid.hh | 6 +- .../Boolean/include/G4IntersectionSolid.hh | 2 +- .../Boolean/include/G4ReflectedSolid.hh | 6 +- .../Boolean/include/G4ReflectionFactory.hh | 66 +- .../Boolean/include/G4SubtractionSolid.hh | 2 +- .../solids/Boolean/include/G4UnionSolid.hh | 2 +- .../solids/Boolean/src/G4BooleanSolid.cc | 6 +- .../solids/Boolean/src/G4DisplacedSolid.cc | 6 +- .../solids/Boolean/src/G4IntersectionSolid.cc | 14 +- .../solids/Boolean/src/G4ReflectedSolid.cc | 6 +- .../solids/Boolean/src/G4ReflectionFactory.cc | 29 +- .../solids/Boolean/src/G4SubtractionSolid.cc | 6 +- .../solids/Boolean/src/G4UnionSolid.cc | 14 +- source/geometry/solids/CSG/History | 5 +- source/geometry/solids/CSG/include/G4Box.hh | 6 +- source/geometry/solids/CSG/include/G4Box.icc | 2 +- .../geometry/solids/CSG/include/G4CSGSolid.hh | 6 +- source/geometry/solids/CSG/include/G4Cons.hh | 6 +- source/geometry/solids/CSG/include/G4Cons.icc | 2 +- source/geometry/solids/CSG/include/G4Para.hh | 6 +- source/geometry/solids/CSG/include/G4Para.icc | 2 +- .../geometry/solids/CSG/include/G4Sphere.hh | 6 +- .../geometry/solids/CSG/include/G4Sphere.icc | 2 +- source/geometry/solids/CSG/include/G4Torus.hh | 6 +- .../geometry/solids/CSG/include/G4Torus.icc | 2 +- source/geometry/solids/CSG/include/G4Trap.hh | 6 +- source/geometry/solids/CSG/include/G4Trap.icc | 2 +- source/geometry/solids/CSG/include/G4Trd.hh | 6 +- source/geometry/solids/CSG/include/G4Trd.icc | 2 +- source/geometry/solids/CSG/include/G4Tubs.hh | 6 +- source/geometry/solids/CSG/include/G4Tubs.icc | 2 +- source/geometry/solids/CSG/src/G4Box.cc | 6 +- source/geometry/solids/CSG/src/G4CSGSolid.cc | 6 +- source/geometry/solids/CSG/src/G4Cons.cc | 6 +- source/geometry/solids/CSG/src/G4Para.cc | 6 +- source/geometry/solids/CSG/src/G4Sphere.cc | 10 +- source/geometry/solids/CSG/src/G4Torus.cc | 6 +- source/geometry/solids/CSG/src/G4Trap.cc | 6 +- source/geometry/solids/CSG/src/G4Trd.cc | 16 +- source/geometry/solids/CSG/src/G4Tubs.cc | 6 +- source/geometry/solids/GNUmakefile | 14 +- source/geometry/solids/History | 9 +- source/geometry/solids/STEP/History | 10 +- source/geometry/solids/STEP/include/ExpDict.h | 10 +- .../solids/STEP/include/STEPaggregate.h | 76 +- .../solids/STEP/include/STEPattribute.h | 28 +- .../solids/STEP/include/STEPcomplex.h | 8 +- .../geometry/solids/STEP/include/STEPfile.h | 66 +- .../solids/STEP/include/STEPundefined.h | 8 +- .../geometry/solids/STEP/include/SdaiBinary.h | 10 +- .../STEP/include/SdaiCONFIG_CONTROL_DESIGN.h | 188 +- source/geometry/solids/STEP/include/Str.h | 4 +- source/geometry/solids/STEP/include/classes.h | 2 +- .../solids/STEP/include/complexSupport.h | 16 +- .../geometry/solids/STEP/include/errordesc.h | 14 +- .../geometry/solids/STEP/include/read_func.h | 38 +- .../geometry/solids/STEP/include/scl_string.h | 4 +- source/geometry/solids/STEP/include/sdai.h | 4 +- .../STEP/include/sdaiApplication_instance.h | 18 +- .../geometry/solids/STEP/include/sdaiEnum.h | 18 +- .../geometry/solids/STEP/include/sdaiSelect.h | 12 +- .../geometry/solids/STEP/include/sdaiString.h | 6 +- source/geometry/solids/STEP/src/ExpDict.cc | 26 +- .../geometry/solids/STEP/src/STEPaggregate.cc | 106 +- .../geometry/solids/STEP/src/STEPattribute.cc | 58 +- .../geometry/solids/STEP/src/STEPcomplex.cc | 38 +- source/geometry/solids/STEP/src/STEPfile.cc | 128 +- .../solids/STEP/src/STEPfile_inline.cc | 32 +- .../geometry/solids/STEP/src/STEPundefined.cc | 18 +- source/geometry/solids/STEP/src/SdaiAll.cc | 18 +- source/geometry/solids/STEP/src/SdaiBinary.cc | 26 +- .../STEP/src/SdaiCONFIG_CONTROL_DESIGN.cc | 192 +- source/geometry/solids/STEP/src/Str.cc | 12 +- source/geometry/solids/STEP/src/errordesc.cc | 6 +- source/geometry/solids/STEP/src/instmgr.cc | 6 +- source/geometry/solids/STEP/src/print.cc | 8 +- source/geometry/solids/STEP/src/read_func.cc | 110 +- .../solids/STEP/src/scl_char_str_list.cc | 2 +- source/geometry/solids/STEP/src/scl_string.cc | 4 +- .../STEP/src/sdaiApplication_instance.cc | 50 +- .../STEP/src/sdaiApplication_instance_set.cc | 2 +- .../geometry/solids/STEP/src/sdaiDaObject.cc | 2 +- .../solids/STEP/src/sdaiEntity_extent_set.cc | 4 +- source/geometry/solids/STEP/src/sdaiEnum.cc | 40 +- source/geometry/solids/STEP/src/sdaiSelect.cc | 34 +- source/geometry/solids/STEP/src/sdaiString.cc | 20 +- ...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 | 12 +- .../STEPinterface/include/G4GeometryTable.hh | 8 +- .../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 | 10 +- .../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 | 2 +- ...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 +- .../specific/include/G4ClippablePolygon.hh | 8 +- .../specific/include/G4ClippablePolygon.icc | 2 +- .../specific/include/G4EllipticalTube.hh | 6 +- .../specific/include/G4EllipticalTube.icc | 2 +- .../specific/include/G4EnclosingCylinder.hh | 2 +- .../solids/specific/include/G4Hype.hh | 6 +- .../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 | 6 +- .../solids/specific/include/G4Polycone.icc | 2 +- .../solids/specific/include/G4PolyconeSide.hh | 2 +- .../solids/specific/include/G4Polyhedra.hh | 6 +- .../solids/specific/include/G4Polyhedra.icc | 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 | 6 +- .../solids/specific/src/G4ClippablePolygon.cc | 2 +- .../solids/specific/src/G4EllipticalTube.cc | 6 +- .../specific/src/G4EnclosingCylinder.cc | 2 +- source/geometry/solids/specific/src/G4Hype.cc | 6 +- .../solids/specific/src/G4IntersectingCone.cc | 2 +- .../solids/specific/src/G4PolyPhiFace.cc | 2 +- .../solids/specific/src/G4Polycone.cc | 6 +- .../solids/specific/src/G4PolyconeSide.cc | 2 +- .../solids/specific/src/G4Polyhedra.cc | 6 +- .../solids/specific/src/G4PolyhedraSide.cc | 2 +- .../solids/specific/src/G4ReduciblePolygon.cc | 2 +- .../solids/specific/src/G4SolidExtentList.cc | 2 +- .../solids/specific/src/G4VCSGfaceted.cc | 6 +- source/geometry/verification/History | 8 +- .../include/G4GeomTestErrorList.hh | 8 +- .../verification/include/G4GeomTestLogger.hh | 2 +- .../include/G4GeomTestOverlapList.hh | 2 +- .../include/G4GeomTestOvershootList.hh | 2 +- .../verification/include/G4GeomTestPoint.hh | 2 +- .../verification/include/G4GeomTestSegment.hh | 8 +- .../include/G4GeomTestStreamLogger.hh | 16 +- .../include/G4GeomTestVolPoint.hh | 2 +- .../verification/include/G4GeomTestVolume.hh | 65 +- .../verification/src/G4GeomTestErrorList.cc | 2 +- .../verification/src/G4GeomTestOverlapList.cc | 2 +- .../src/G4GeomTestOvershootList.cc | 2 +- .../verification/src/G4GeomTestPoint.cc | 2 +- .../verification/src/G4GeomTestSegment.cc | 12 +- .../src/G4GeomTestStreamLogger.cc | 32 +- .../verification/src/G4GeomTestVolPoint.cc | 2 +- .../verification/src/G4GeomTestVolume.cc | 266 +- source/geometry/volumes/GNUmakefile | 10 +- source/geometry/volumes/History | 49 +- .../volumes/include/G4AuxiliaryNavServices.hh | 2 +- .../include/G4AuxiliaryNavServices.icc | 2 +- .../volumes/include/G4BlockingList.hh | 8 +- .../volumes/include/G4BlockingList.icc | 2 +- source/geometry/volumes/include/G4GRSSolid.hh | 2 +- .../geometry/volumes/include/G4GRSSolid.icc | 2 +- .../volumes/include/G4GRSSolidHandle.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.icc | 2 +- .../volumes/include/G4GRSVolumeHandle.hh | 2 +- .../volumes/include/G4GeometryMessenger.hh | 22 +- .../include/G4IdentityTrajectoryFilter.hh | 2 +- .../volumes/include/G4LogicalBorderSurface.hh | 12 +- .../include/G4LogicalBorderSurface.icc | 2 +- .../volumes/include/G4LogicalSkinSurface.hh | 10 +- .../volumes/include/G4LogicalSkinSurface.icc | 2 +- .../volumes/include/G4NavigationHistory.hh | 14 +- .../volumes/include/G4NavigationHistory.icc | 2 +- .../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 | 8 +- .../geometry/volumes/include/G4Navigator.icc | 2 +- .../volumes/include/G4NormalNavigation.hh | 2 +- .../volumes/include/G4NormalNavigation.icc | 2 +- .../include/G4ParameterisedNavigation.hh | 6 +- .../include/G4ParameterisedNavigation.icc | 2 +- .../volumes/include/G4PropagatorInField.hh | 91 +- .../volumes/include/G4PropagatorInField.icc | 13 +- .../volumes/include/G4ReplicaNavigation.hh | 2 +- .../volumes/include/G4ReplicaNavigation.icc | 2 +- .../volumes/include/G4TouchableHistory.hh | 2 +- .../volumes/include/G4TouchableHistory.icc | 2 +- .../include/G4TouchableHistoryHandle.hh | 2 +- .../include/G4TransportationManager.hh | 6 +- .../include/G4TransportationManager.icc | 9 +- .../include/G4VCurvedTrajectoryFilter.hh | 10 +- .../volumes/include/G4VoxelNavigation.hh | 16 +- .../volumes/include/G4VoxelNavigation.icc | 2 +- .../volumes/src/G4AuxiliaryNavServices.cc | 2 +- source/geometry/volumes/src/G4BlockingList.cc | 2 +- source/geometry/volumes/src/G4GRSSolid.cc | 2 +- source/geometry/volumes/src/G4GRSVolume.cc | 2 +- .../volumes/src/G4GeometryMessenger.cc | 264 +- .../volumes/src/G4IdentityTrajectoryFilter.cc | 2 +- .../volumes/src/G4LogicalBorderSurface.cc | 6 +- .../volumes/src/G4LogicalSkinSurface.cc | 2 +- .../volumes/src/G4NavigationHistory.cc | 8 +- source/geometry/volumes/src/G4Navigator.cc | 46 +- .../volumes/src/G4NormalNavigation.cc | 2 +- .../volumes/src/G4ParameterisedNavigation.cc | 6 +- .../volumes/src/G4PropagatorInField.cc | 446 +- .../volumes/src/G4ReplicaNavigation.cc | 2 +- .../volumes/src/G4TouchableHistory.cc | 2 +- .../volumes/src/G4TransportationManager.cc | 14 +- .../volumes/src/G4VCurvedTrajectoryFilter.cc | 10 +- .../geometry/volumes/src/G4VoxelNavigation.cc | 6 +- .../HEPGeometry/include/G4LorentzRotation.hh | 2 +- .../HEPGeometry/include/G4LorentzVector.hh | 2 +- .../global/HEPGeometry/include/G4Normal3D.hh | 2 +- .../global/HEPGeometry/include/G4Plane3D.hh | 2 +- .../global/HEPGeometry/include/G4Point3D.hh | 2 +- .../HEPGeometry/include/G4Transform3D.hh | 2 +- .../global/HEPGeometry/include/G4Vector3D.hh | 2 +- source/global/HEPGeometry/include/geomdefs.hh | 2 +- .../include/G4ChebyshevApproximation.hh | 2 +- .../include/G4DataInterpolation.hh | 2 +- .../HEPNumerics/include/G4GaussChebyshevQ.hh | 2 +- .../HEPNumerics/include/G4GaussHermiteQ.hh | 2 +- .../HEPNumerics/include/G4GaussJacobiQ.hh | 2 +- .../HEPNumerics/include/G4GaussLaguerreQ.hh | 2 +- .../HEPNumerics/include/G4GaussLegendreQ.hh | 2 +- .../HEPNumerics/include/G4Integrator.hh | 2 +- .../HEPNumerics/include/G4Integrator.icc | 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 | 16 +- .../global/management/include/G4Allocator.hh | 2 +- .../management/include/G4AllocatorPage.hh | 2 +- .../management/include/G4AllocatorUnit.hh | 2 +- .../management/include/G4ApplicationState.hh | 2 +- .../global/management/include/G4DataVector.hh | 18 +- .../management/include/G4ExceptionSeverity.hh | 2 +- .../global/management/include/G4FastVector.hh | 2 +- .../include/G4LPhysicsFreeVector.hh | 2 +- .../include/G4LPhysicsFreeVector.icc | 2 +- .../management/include/G4OrderedTable.hh | 12 +- .../management/include/G4PhysicsFreeVector.hh | 2 +- .../include/G4PhysicsLinearVector.hh | 6 +- .../management/include/G4PhysicsLnVector.hh | 6 +- .../management/include/G4PhysicsLogVector.hh | 6 +- .../include/G4PhysicsOrderedFreeVector.hh | 2 +- .../include/G4PhysicsOrderedFreeVector.icc | 2 +- .../management/include/G4PhysicsTable.hh | 12 +- .../management/include/G4PhysicsTable.icc | 2 +- .../management/include/G4PhysicsVector.hh | 36 +- .../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 | 8 +- source/global/management/include/G4String.hh | 26 +- source/global/management/include/G4String.icc | 28 +- .../management/include/G4ThreeVector.hh | 2 +- source/global/management/include/G4Timer.hh | 8 +- .../global/management/include/G4Tokenizer.hh | 2 +- source/global/management/include/G4Types.hh | 38 +- .../global/management/include/G4UnitsTable.hh | 12 +- .../global/management/include/G4UserLimits.hh | 2 +- .../management/include/G4UserLimits.icc | 2 +- .../management/include/G4VExceptionHandler.hh | 2 +- .../management/include/G4VStateDependent.hh | 2 +- .../management/include/G4coutDestination.hh | 2 +- source/global/management/include/G4ios.hh | 14 +- .../management/include/G4strstreambuf.hh | 11 +- .../management/include/G4strstreambuf.icc | 8 +- .../global/management/include/g4std/algorithm | 10 +- .../global/management/include/g4std/complex | 17 +- source/global/management/include/g4std/deque | 10 +- .../global/management/include/g4std/fstream | 10 +- .../management/include/g4std/functional | 10 +- .../global/management/include/g4std/iomanip | 10 +- .../global/management/include/g4std/iostream | 10 +- source/global/management/include/g4std/list | 10 +- source/global/management/include/g4std/map | 10 +- source/global/management/include/g4std/queue | 10 +- source/global/management/include/g4std/set | 10 +- .../global/management/include/g4std/streambuf | 14 +- .../global/management/include/g4std/strstream | 17 +- source/global/management/include/g4std/vector | 11 +- source/global/management/include/globals.hh | 10 +- source/global/management/include/templates.hh | 2 +- source/global/management/src/G4DataVector.cc | 20 +- source/global/management/src/G4Exception.cc | 6 +- .../management/src/G4LPhysicsFreeVector.cc | 2 +- .../global/management/src/G4OrderedTable.cc | 36 +- .../management/src/G4PhysicsFreeVector.cc | 2 +- .../management/src/G4PhysicsLinearVector.cc | 6 +- .../management/src/G4PhysicsLnVector.cc | 6 +- .../management/src/G4PhysicsLogVector.cc | 6 +- .../src/G4PhysicsOrderedFreeVector.cc | 2 +- .../global/management/src/G4PhysicsTable.cc | 32 +- .../global/management/src/G4PhysicsVector.cc | 17 +- .../global/management/src/G4StateManager.cc | 10 +- source/global/management/src/G4Timer.cc | 8 +- source/global/management/src/G4UnitsTable.cc | 24 +- .../management/src/G4VExceptionHandler.cc | 2 +- .../management/src/G4VStateDependent.cc | 2 +- source/global/management/src/G4ios.cc | 10 +- source/graphics_reps/include/G4AttDef.hh | 2 +- source/graphics_reps/include/G4AttDefStore.hh | 10 +- source/graphics_reps/include/G4AttValue.hh | 2 +- source/graphics_reps/include/G4Circle.hh | 2 +- source/graphics_reps/include/G4Color.hh | 2 +- source/graphics_reps/include/G4Colour.hh | 8 +- source/graphics_reps/include/G4NURBS.hh | 10 +- 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 | 8 +- source/graphics_reps/include/G4Point3DList.hh | 14 +- source/graphics_reps/include/G4Polyhedron.hh | 2 +- source/graphics_reps/include/G4Polyline.hh | 6 +- source/graphics_reps/include/G4Polymarker.hh | 6 +- 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 | 6 +- source/graphics_reps/include/G4VMarker.icc | 2 +- source/graphics_reps/include/G4VVisPrim.hh | 8 +- .../graphics_reps/include/G4VisAttributes.hh | 20 +- .../graphics_reps/include/G4VisAttributes.icc | 12 +- source/graphics_reps/include/G4VisExtent.hh | 6 +- source/graphics_reps/include/G4Visible.hh | 8 +- source/graphics_reps/include/G4Visible.icc | 2 +- source/graphics_reps/include/HepPolyhedron.h | 2 +- source/graphics_reps/src/G4AttDefStore.cc | 14 +- source/graphics_reps/src/G4Circle.cc | 2 +- source/graphics_reps/src/G4Colour.cc | 6 +- source/graphics_reps/src/G4NURBS.cc | 8 +- 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 | 8 +- .../graphics_reps/src/G4PlacedPolyhedron.cc | 2 +- source/graphics_reps/src/G4Point3DList.cc | 6 +- source/graphics_reps/src/G4Polyhedron.cc | 2 +- source/graphics_reps/src/G4Polyline.cc | 6 +- source/graphics_reps/src/G4Polymarker.cc | 6 +- 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 | 6 +- source/graphics_reps/src/G4VVisPrim.cc | 6 +- source/graphics_reps/src/G4VisAttributes.cc | 6 +- source/graphics_reps/src/G4VisExtent.cc | 6 +- source/graphics_reps/src/G4Visible.cc | 6 +- source/graphics_reps/src/HepPolyhedron.cc | 2 +- source/intercoms/History | 15 +- source/intercoms/include/G4UIaliasList.hh | 10 +- source/intercoms/include/G4UIbatch.hh | 8 +- .../intercoms/include/G4UIcmdWith3Vector.hh | 2 +- .../include/G4UIcmdWith3VectorAndUnit.hh | 2 +- source/intercoms/include/G4UIcmdWithABool.hh | 2 +- .../intercoms/include/G4UIcmdWithADouble.hh | 2 +- .../include/G4UIcmdWithADoubleAndUnit.hh | 2 +- .../intercoms/include/G4UIcmdWithAString.hh | 2 +- .../intercoms/include/G4UIcmdWithAnInteger.hh | 2 +- .../include/G4UIcmdWithoutParameter.hh | 2 +- source/intercoms/include/G4UIcommand.hh | 16 +- source/intercoms/include/G4UIcommandStatus.hh | 2 +- source/intercoms/include/G4UIcommandTree.hh | 10 +- .../intercoms/include/G4UIcontrolMessenger.hh | 2 +- source/intercoms/include/G4UIdirectory.hh | 2 +- source/intercoms/include/G4UImanager.hh | 12 +- source/intercoms/include/G4UImessenger.hh | 2 +- source/intercoms/include/G4UIparameter.hh | 6 +- source/intercoms/include/G4UIsession.hh | 2 +- source/intercoms/include/G4UItokenNum.hh | 34 +- 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 | 2 +- source/intercoms/src/G4UIbatch.cc | 2 +- source/intercoms/src/G4UIcmdWith3Vector.cc | 10 +- .../src/G4UIcmdWith3VectorAndUnit.cc | 14 +- source/intercoms/src/G4UIcmdWithABool.cc | 6 +- source/intercoms/src/G4UIcmdWithADouble.cc | 10 +- .../src/G4UIcmdWithADoubleAndUnit.cc | 14 +- source/intercoms/src/G4UIcmdWithAString.cc | 6 +- source/intercoms/src/G4UIcmdWithAnInteger.cc | 10 +- .../intercoms/src/G4UIcmdWithoutParameter.cc | 2 +- source/intercoms/src/G4UIcommand.cc | 14 +- source/intercoms/src/G4UIcommandTree.cc | 20 +- source/intercoms/src/G4UIcontrolMessenger.cc | 2 +- source/intercoms/src/G4UIdirectory.cc | 2 +- source/intercoms/src/G4UImanager.cc | 33 +- source/intercoms/src/G4UImessenger.cc | 18 +- source/intercoms/src/G4UIparameter.cc | 14 +- source/intercoms/src/G4UIsession.cc | 10 +- source/intercoms/src/G4UnitsMessenger.cc | 6 +- .../src/G4VGlobalFastSimulationManager.cc | 2 +- source/intercoms/src/G4VVisManager.cc | 2 +- source/interfaces/GAG/include/G4UIGAG.hh | 20 +- .../interfaces/GAG/include/G4UIGainServer.hh | 20 +- source/interfaces/GAG/src/G4UIGAG.cc | 18 +- source/interfaces/GAG/src/G4UIGainServer.cc | 21 +- source/interfaces/History | 14 +- 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 | 6 +- .../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 | 12 +- source/interfaces/basic/include/G4UIXaw.hh | 2 +- source/interfaces/basic/include/G4UIXm.hh | 8 +- source/interfaces/basic/include/G4UIcsh.hh | 2 +- source/interfaces/basic/include/G4UItcsh.hh | 8 +- .../interfaces/basic/include/G4UIterminal.hh | 6 +- source/interfaces/basic/include/G4VUIshell.hh | 2 +- .../interfaces/basic/src/G4UIArrayString.cc | 14 +- source/interfaces/basic/src/G4UIWin32.cc | 12 +- source/interfaces/basic/src/G4UIXaw.cc | 2 +- source/interfaces/basic/src/G4UIXm.cc | 11 +- source/interfaces/basic/src/G4UIcsh.cc | 6 +- source/interfaces/basic/src/G4UItcsh.cc | 45 +- source/interfaces/basic/src/G4UIterminal.cc | 13 +- source/interfaces/basic/src/G4VUIshell.cc | 6 +- .../common/include/G4VBasicShell.hh | 2 +- .../common/include/G4VInteractiveSession.hh | 33 +- .../common/include/G4VInteractorManager.hh | 14 +- source/interfaces/common/include/G4Win32.hh | 2 +- source/interfaces/common/include/G4Xt.hh | 2 +- source/interfaces/common/src/G4VBasicShell.cc | 28 +- .../common/src/G4VInteractiveSession.cc | 43 +- .../common/src/G4VInteractorManager.cc | 18 +- source/interfaces/common/src/G4Win32.cc | 2 +- source/interfaces/common/src/G4Xt.cc | 2 +- source/materials/History | 13 +- source/materials/include/G4AtomicShells.hh | 2 +- source/materials/include/G4Element.hh | 12 +- source/materials/include/G4ElementTable.hh | 6 +- source/materials/include/G4ElementVector.hh | 8 +- source/materials/include/G4IonisParamElm.hh | 2 +- source/materials/include/G4IonisParamMat.hh | 2 +- source/materials/include/G4Isotope.hh | 14 +- source/materials/include/G4IsotopeVector.hh | 8 +- source/materials/include/G4MPVEntry.hh | 2 +- source/materials/include/G4Material.hh | 12 +- .../include/G4MaterialPropertiesTable.hh | 18 +- .../include/G4MaterialPropertyVector.hh | 12 +- source/materials/include/G4MaterialTable.hh | 6 +- source/materials/include/G4OpticalSurface.hh | 2 +- source/materials/include/G4SandiaTable.hh | 2 +- .../materials/include/G4StaticSandiaData.hh | 2 +- source/materials/src/G4AtomicShells.cc | 2 +- source/materials/src/G4Element.cc | 34 +- source/materials/src/G4IonisParamElm.cc | 2 +- source/materials/src/G4IonisParamMat.cc | 2 +- source/materials/src/G4Isotope.cc | 34 +- source/materials/src/G4MPVEntry.cc | 2 +- source/materials/src/G4Material.cc | 38 +- .../src/G4MaterialPropertiesTable.cc | 2 +- .../materials/src/G4MaterialPropertyVector.cc | 10 +- source/materials/src/G4OpticalSurface.cc | 2 +- source/materials/src/G4SandiaTable.cc | 8 +- source/parameterisations/History | 6 +- .../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 | 10 +- .../parameterisations/include/G4VXTRdEdx.hh | 6 +- .../include/G4VXrayTRadModel.hh | 6 +- .../include/G4VXrayTRmodel.hh | 6 +- source/parameterisations/src/G4FoamXTRdEdx.cc | 10 +- .../src/G4FoamXrayTRmodel.cc | 12 +- .../src/G4GamDistrXTRdEdx.cc | 14 +- .../src/G4GamDistrXrayTRmodel.cc | 16 +- .../src/G4IrregularXTRdEdx.cc | 6 +- .../src/G4IrregularXrayTRmodel.cc | 7 +- .../src/G4PAIclusterModel.cc | 2 +- .../src/G4PhotoClusterModel.cc | 2 +- .../src/G4PlateIrrGasXTRdEdx.cc | 8 +- .../src/G4PlateIrrGasXrayTRmodel.cc | 12 +- .../parameterisations/src/G4RegularXTRdEdx.cc | 12 +- .../src/G4RegularXrayTRmodel.cc | 12 +- .../parameterisations/src/G4VClusterModel.cc | 2 +- source/parameterisations/src/G4VXTRdEdx.cc | 6 +- .../parameterisations/src/G4VXrayTRadModel.cc | 6 +- .../parameterisations/src/G4VXrayTRmodel.cc | 24 +- source/particles/History | 21 +- .../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 | 8 +- source/particles/bosons/src/G4Gamma.cc | 8 +- source/particles/bosons/src/G4Geantino.cc | 8 +- .../particles/bosons/src/G4OpticalPhoton.cc | 8 +- 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 | 8 +- .../hadrons/barions/src/G4AntiLambdacPlus.cc | 8 +- .../hadrons/barions/src/G4AntiNeutron.cc | 8 +- .../hadrons/barions/src/G4AntiOmegaMinus.cc | 8 +- .../hadrons/barions/src/G4AntiOmegacZero.cc | 8 +- .../hadrons/barions/src/G4AntiProton.cc | 8 +- .../hadrons/barions/src/G4AntiSigmaMinus.cc | 8 +- .../hadrons/barions/src/G4AntiSigmaPlus.cc | 8 +- .../hadrons/barions/src/G4AntiSigmaZero.cc | 8 +- .../hadrons/barions/src/G4AntiSigmacPlus.cc | 8 +- .../barions/src/G4AntiSigmacPlusPlus.cc | 8 +- .../hadrons/barions/src/G4AntiSigmacZero.cc | 8 +- .../hadrons/barions/src/G4AntiXiMinus.cc | 8 +- .../hadrons/barions/src/G4AntiXiZero.cc | 8 +- .../hadrons/barions/src/G4AntiXicPlus.cc | 8 +- .../hadrons/barions/src/G4AntiXicZero.cc | 8 +- .../barions/src/G4BaryonConstructor.cc | 2 +- .../particles/hadrons/barions/src/G4Lambda.cc | 8 +- .../hadrons/barions/src/G4LambdacPlus.cc | 8 +- .../hadrons/barions/src/G4Neutron.cc | 8 +- .../hadrons/barions/src/G4OmegaMinus.cc | 8 +- .../hadrons/barions/src/G4OmegacZero.cc | 8 +- .../particles/hadrons/barions/src/G4Proton.cc | 8 +- .../hadrons/barions/src/G4SigmaMinus.cc | 8 +- .../hadrons/barions/src/G4SigmaPlus.cc | 8 +- .../hadrons/barions/src/G4SigmaZero.cc | 8 +- .../hadrons/barions/src/G4SigmacPlus.cc | 8 +- .../hadrons/barions/src/G4SigmacPlusPlus.cc | 8 +- .../hadrons/barions/src/G4SigmacZero.cc | 8 +- .../hadrons/barions/src/G4VBaryon.cc | 2 +- .../hadrons/barions/src/G4XiMinus.cc | 8 +- .../particles/hadrons/barions/src/G4XiZero.cc | 8 +- .../hadrons/barions/src/G4XicPlus.cc | 8 +- .../hadrons/barions/src/G4XicZero.cc | 8 +- .../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 | 8 +- .../particles/hadrons/ions/src/G4Deuteron.cc | 8 +- .../hadrons/ions/src/G4GenericIon.cc | 8 +- source/particles/hadrons/ions/src/G4He3.cc | 8 +- .../hadrons/ions/src/G4IonConstructor.cc | 2 +- source/particles/hadrons/ions/src/G4Triton.cc | 8 +- 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 | 8 +- .../hadrons/mesons/src/G4AntiBsMesonZero.cc | 8 +- .../hadrons/mesons/src/G4AntiDMesonZero.cc | 8 +- .../hadrons/mesons/src/G4AntiKaonZero.cc | 8 +- .../hadrons/mesons/src/G4BMesonMinus.cc | 8 +- .../hadrons/mesons/src/G4BMesonPlus.cc | 8 +- .../hadrons/mesons/src/G4BMesonZero.cc | 8 +- .../hadrons/mesons/src/G4BsMesonZero.cc | 8 +- .../hadrons/mesons/src/G4DMesonMinus.cc | 8 +- .../hadrons/mesons/src/G4DMesonPlus.cc | 8 +- .../hadrons/mesons/src/G4DMesonZero.cc | 8 +- .../hadrons/mesons/src/G4DsMesonMinus.cc | 8 +- .../hadrons/mesons/src/G4DsMesonPlus.cc | 8 +- source/particles/hadrons/mesons/src/G4Eta.cc | 8 +- .../hadrons/mesons/src/G4EtaPrime.cc | 8 +- source/particles/hadrons/mesons/src/G4JPsi.cc | 8 +- .../hadrons/mesons/src/G4KaonMinus.cc | 8 +- .../hadrons/mesons/src/G4KaonPlus.cc | 8 +- .../hadrons/mesons/src/G4KaonZero.cc | 8 +- .../hadrons/mesons/src/G4KaonZeroLong.cc | 8 +- .../hadrons/mesons/src/G4KaonZeroShort.cc | 8 +- .../hadrons/mesons/src/G4MesonConstructor.cc | 2 +- .../hadrons/mesons/src/G4PionMinus.cc | 8 +- .../hadrons/mesons/src/G4PionPlus.cc | 8 +- .../hadrons/mesons/src/G4PionZero.cc | 8 +- .../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 | 8 +- .../particles/leptons/src/G4AntiNeutrinoMu.cc | 8 +- .../leptons/src/G4AntiNeutrinoTau.cc | 8 +- source/particles/leptons/src/G4Electron.cc | 8 +- .../leptons/src/G4LeptonConstructor.cc | 2 +- source/particles/leptons/src/G4MuonMinus.cc | 8 +- source/particles/leptons/src/G4MuonPlus.cc | 8 +- source/particles/leptons/src/G4NeutrinoE.cc | 8 +- source/particles/leptons/src/G4NeutrinoMu.cc | 8 +- source/particles/leptons/src/G4NeutrinoTau.cc | 8 +- source/particles/leptons/src/G4Positron.cc | 8 +- source/particles/leptons/src/G4TauMinus.cc | 8 +- source/particles/leptons/src/G4TauPlus.cc | 8 +- source/particles/leptons/src/G4VLepton.cc | 2 +- .../include/G4DalitzDecayChannel.hh | 2 +- .../management/include/G4DecayProducts.hh | 2 +- .../management/include/G4DecayTable.hh | 8 +- .../include/G4DecayTableMessenger.hh | 6 +- .../management/include/G4DynamicParticle.hh | 2 +- .../management/include/G4DynamicParticle.icc | 2 +- .../include/G4DynamicParticleFastVector.hh | 2 +- .../management/include/G4ElectronOccupancy.hh | 2 +- .../management/include/G4IonTable.hh | 8 +- source/particles/management/include/G4Ions.hh | 2 +- .../management/include/G4IsotopeProperty.hh | 2 +- .../management/include/G4KL3DecayChannel.hh | 2 +- .../include/G4MaterialCutsCouple.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 | 10 +- .../include/G4ParticleDefinition.icc | 2 +- .../management/include/G4ParticleMessenger.hh | 6 +- .../management/include/G4ParticleMomentum.hh | 2 +- .../include/G4ParticlePropertyMessenger.hh | 6 +- .../management/include/G4ParticleTable.hh | 6 +- .../management/include/G4ParticleTable.icc | 2 +- .../include/G4ParticleTableIterator.hh | 8 +- .../management/include/G4ParticleWithCuts.hh | 5 +- .../include/G4PhaseSpaceDecayChannel.hh | 2 +- .../management/include/G4ProductionCuts.hh | 24 +- .../include/G4ProductionCutsTable.hh | 24 +- .../include/G4RToEConvForAntiNeutron.hh | 6 +- .../include/G4RToEConvForAntiProton.hh | 6 +- .../include/G4RToEConvForElectron.hh | 6 +- .../management/include/G4RToEConvForGamma.hh | 6 +- .../include/G4RToEConvForNeutron.hh | 6 +- .../include/G4RToEConvForPositron.hh | 6 +- .../management/include/G4RToEConvForProton.hh | 6 +- .../management/include/G4ShortLivedTable.hh | 8 +- .../include/G4TauLeptonicDecayChannel.hh | 2 +- .../management/include/G4VDecayChannel.hh | 2 +- .../management/include/G4VIsotopeTable.hh | 2 +- .../include/G4VRangeToEnergyConverter.hh | 6 +- .../management/src/G4DalitzDecayChannel.cc | 2 +- .../management/src/G4DecayProducts.cc | 2 +- .../particles/management/src/G4DecayTable.cc | 2 +- .../management/src/G4DecayTableMessenger.cc | 6 +- .../management/src/G4DynamicParticle.cc | 78 +- .../management/src/G4ElectronOccupancy.cc | 2 +- source/particles/management/src/G4IonTable.cc | 24 +- source/particles/management/src/G4Ions.cc | 8 +- .../management/src/G4IsotopeProperty.cc | 8 +- .../management/src/G4KL3DecayChannel.cc | 2 +- .../management/src/G4MaterialCutsCouple.cc | 6 +- .../management/src/G4MuonDecayChannel.cc | 2 +- .../src/G4NeutronBetaDecayChannel.cc | 2 +- .../management/src/G4NucleiProperties.cc | 2 +- .../src/G4NucleiPropertiesTableA.cc | 2 +- .../src/G4NucleiPropertiesTableB.cc | 2 +- .../G4NucleiPropertiesTheoreticalTableA.cc | 6 +- .../management/src/G4PDGCodeChecker.cc | 8 +- .../management/src/G4ParticleDefinition.cc | 8 +- .../management/src/G4ParticleMessenger.cc | 8 +- .../src/G4ParticlePropertyMessenger.cc | 6 +- .../management/src/G4ParticleTable.cc | 6 +- .../src/G4PhaseSpaceDecayChannel.cc | 2 +- .../management/src/G4ProductionCuts.cc | 6 +- .../management/src/G4ProductionCutsTable.cc | 108 +- .../src/G4RToEConvForAntiNeutron.cc | 8 +- .../management/src/G4RToEConvForAntiProton.cc | 8 +- .../management/src/G4RToEConvForElectron.cc | 8 +- .../management/src/G4RToEConvForGamma.cc | 8 +- .../management/src/G4RToEConvForNeutron.cc | 8 +- .../management/src/G4RToEConvForPositron.cc | 8 +- .../management/src/G4RToEConvForProton.cc | 8 +- .../management/src/G4ShortLivedTable.cc | 6 +- .../src/G4TauLeptonicDecayChannel.cc | 2 +- .../management/src/G4VDecayChannel.cc | 2 +- .../src/G4VRangeToEnergyConverter.cc | 11 +- .../shortlived/include/G4DiQuarks.hh | 2 +- .../include/G4ExcitedBaryonConstructor.hh | 2 +- .../shortlived/include/G4ExcitedBaryons.hh | 2 +- .../include/G4ExcitedDeltaConstructor.hh | 2 +- .../include/G4ExcitedLambdaConstructor.hh | 8 +- .../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 | 8 +- .../src/G4ExcitedBaryonConstructor.cc | 2 +- .../shortlived/src/G4ExcitedBaryons.cc | 8 +- .../src/G4ExcitedDeltaConstructor.cc | 2 +- .../src/G4ExcitedLambdaConstructor.cc | 18 +- .../src/G4ExcitedMesonConstructor.cc | 20 +- .../shortlived/src/G4ExcitedMesons.cc | 8 +- .../src/G4ExcitedNucleonConstructor.cc | 2 +- .../src/G4ExcitedSigmaConstructor.cc | 2 +- .../shortlived/src/G4ExcitedXiConstructor.cc | 2 +- source/particles/shortlived/src/G4Gluons.cc | 8 +- source/particles/shortlived/src/G4Quarks.cc | 8 +- .../shortlived/src/G4ShortLivedConstructor.cc | 2 +- .../shortlived/src/G4VShortLivedParticle.cc | 2 +- source/persistency/History | 8 + source/persistency/include/G4DCIOcatalog.hh | 12 +- source/persistency/include/G4DCIOentryT.hh | 4 +- source/persistency/include/G4FileUtilities.hh | 14 +- source/persistency/include/G4HCIOcatalog.hh | 12 +- source/persistency/include/G4HCIOentryT.hh | 4 +- source/persistency/include/G4MCTEvent.hh | 10 +- source/persistency/include/G4MCTGenEvent.hh | 8 +- .../persistency/include/G4MCTGenParticle.hh | 4 +- source/persistency/include/G4MCTSimEvent.hh | 12 +- .../persistency/include/G4MCTSimParticle.hh | 26 +- source/persistency/include/G4MCTSimVertex.hh | 30 +- .../include/G4PersistencyCenter.hh | 56 +- .../include/G4PersistencyCenterMessenger.hh | 3 +- .../include/G4PersistencyManagerT.hh | 2 +- source/persistency/include/G4VDCIOentry.hh | 14 +- source/persistency/include/G4VHCIOentry.hh | 14 +- .../include/G4VPDigitsCollectionIO.hh | 10 +- .../include/G4VPHitsCollectionIO.hh | 10 +- .../include/G4VTransactionManager.hh | 4 +- source/persistency/src/G4DCIOcatalog.cc | 8 +- source/persistency/src/G4FileUtilities.cc | 10 +- source/persistency/src/G4HCIOcatalog.cc | 10 +- source/persistency/src/G4MCTEvent.cc | 6 +- source/persistency/src/G4MCTGenEvent.cc | 2 +- source/persistency/src/G4MCTSimEvent.cc | 4 +- source/persistency/src/G4MCTSimParticle.cc | 57 +- source/persistency/src/G4MCTSimVertex.cc | 35 +- source/persistency/src/G4PersistencyCenter.cc | 50 +- .../src/G4PersistencyCenterMessenger.cc | 37 +- .../persistency/src/G4PersistencyManager.cc | 16 +- source/persistency/src/G4VDCIOentry.cc | 2 +- source/persistency/src/G4VHCIOentry.cc | 2 +- .../persistency/src/G4VPDigitsCollectionIO.cc | 4 +- .../persistency/src/G4VPHitsCollectionIO.cc | 4 +- source/processes/GNUmakefile | 4 +- source/processes/decay/include/G4Decay.hh | 2 +- .../processes/decay/include/G4VExtDecayer.hh | 2 +- source/processes/decay/src/G4Decay.cc | 2 +- .../electromagnetic/lowenergy/History | 24 +- .../lowenergy/include/G4AtomicDeexcitation.hh | 6 +- .../lowenergy/include/G4AtomicShell.hh | 2 +- .../lowenergy/include/G4AtomicTransition.hh | 10 +- .../include/G4AtomicTransitionManager.hh | 8 +- .../lowenergy/include/G4AugerData.hh | 22 +- .../lowenergy/include/G4AugerTransition.hh | 24 +- .../G4BremsstrahlungCrossSectionHandler.hh | 2 +- .../include/G4BremsstrahlungParameters.hh | 8 +- .../lowenergy/include/G4CompositeEMDataSet.hh | 8 +- .../include/G4CrossSectionHandler.hh | 10 +- .../lowenergy/include/G4EMDataSet.hh | 8 +- .../lowenergy/include/G4FluoData.hh | 16 +- .../lowenergy/include/G4FluoTransition.hh | 10 +- .../lowenergy/include/G4LinInterpolation.hh | 2 +- .../include/G4LogLogInterpolation.hh | 2 +- .../include/G4LowEnergyBremsstrahlung.hh | 16 +- .../lowenergy/include/G4LowEnergyCompton.hh | 2 +- .../include/G4LowEnergyGammaConversion.hh | 2 +- .../include/G4LowEnergyIonisation.hh | 6 +- .../include/G4LowEnergyPhotoElectric.hh | 2 +- .../include/G4LowEnergyPolarizedCompton.hh | 2 +- .../lowenergy/include/G4LowEnergyRayleigh.hh | 2 +- .../lowenergy/include/G4ModifiedTsai.hh | 85 + .../include/G4PenelopeBremsstrahlung.hh | 16 +- .../G4PenelopeBremsstrahlungAngular.hh | 2 +- .../G4PenelopeBremsstrahlungContinuous.hh | 2 +- .../lowenergy/include/G4PenelopeCompton.hh | 14 +- .../include/G4PenelopeGammaConversion.hh | 2 +- .../include/G4PenelopeIntegrator.icc | 6 +- .../include/G4PenelopePhotoElectric.hh | 2 +- .../lowenergy/include/G4PenelopeRayleigh.hh | 2 +- .../lowenergy/include/G4RangeNoTest.hh | 12 +- .../lowenergy/include/G4RangeTest.hh | 2 +- .../include/G4SemiLogInterpolation.hh | 2 +- .../lowenergy/include/G4ShellData.hh | 14 +- .../lowenergy/include/G4ShellEMDataSet.hh | 10 +- .../lowenergy/include/G4ShellVacancy.hh | 6 +- .../include/G4VBremAngularDistribution.hh | 84 + .../include/G4VCrossSectionHandler.hh | 14 +- .../lowenergy/include/G4VDataSetAlgorithm.hh | 2 +- .../lowenergy/include/G4VEMDataSet.hh | 2 +- .../lowenergy/include/G4VRangeTest.hh | 2 +- .../lowenergy/include/G4VeLowEnergyLoss.hh | 2 +- .../include/G4VhShellCrossSection.hh | 4 +- .../include/G4eBremsstrahlungSpectrum.hh | 8 +- .../G4eIonisationCrossSectionHandler.hh | 6 +- .../include/G4eIonisationParameters.hh | 10 +- .../include/G4eIonisationSpectrum.hh | 7 +- .../lowenergy/include/G4eLowEnergyLoss.hh | 11 +- .../lowenergy/include/G4eLowEnergyLoss.icc | 6 +- .../include/G4hLowEnergyIonisation.hh | 4 +- .../lowenergy/include/G4hLowEnergyLoss.hh | 2 +- .../lowenergy/include/G4hLowEnergyLoss.icc | 2 +- .../include/G4hNuclearStoppingModel.hh | 36 +- .../lowenergy/include/G4hShellCrossSection.hh | 2 +- .../lowenergy/src/G4AtomicDeexcitation.cc | 10 +- .../lowenergy/src/G4AtomicShell.cc | 2 +- .../src/G4AtomicTransitionManager.cc | 44 +- .../lowenergy/src/G4AugerData.cc | 80 +- .../lowenergy/src/G4AugerTransition.cc | 28 +- .../G4BremsstrahlungCrossSectionHandler.cc | 10 +- .../src/G4BremsstrahlungParameters.cc | 22 +- .../lowenergy/src/G4CompositeEMDataSet.cc | 14 +- .../lowenergy/src/G4CrossSectionHandler.cc | 16 +- .../lowenergy/src/G4EMDataSet.cc | 20 +- .../lowenergy/src/G4FluoData.cc | 20 +- .../lowenergy/src/G4FluoTransition.cc | 6 +- .../lowenergy/src/G4IonChuFluctuationModel.cc | 33 +- .../src/G4IonYangFluctuationModel.cc | 67 +- .../lowenergy/src/G4LinInterpolation.cc | 2 +- .../lowenergy/src/G4LinLogLogInterpolation.cc | 2 +- .../lowenergy/src/G4LogLogInterpolation.cc | 6 +- .../src/G4LowEnergyBremsstrahlung.cc | 59 +- .../lowenergy/src/G4LowEnergyCompton.cc | 10 +- .../src/G4LowEnergyGammaConversion.cc | 20 +- .../lowenergy/src/G4LowEnergyIonisation.cc | 21 +- .../lowenergy/src/G4LowEnergyPhotoElectric.cc | 16 +- .../src/G4LowEnergyPolarizedCompton.cc | 8 +- .../lowenergy/src/G4LowEnergyRayleigh.cc | 8 +- .../lowenergy/src/G4ModifiedTsai.cc | 101 + .../lowenergy/src/G4PenelopeBremsstrahlung.cc | 123 +- .../src/G4PenelopeBremsstrahlungAngular.cc | 16 +- .../src/G4PenelopeBremsstrahlungContinuous.cc | 16 +- .../lowenergy/src/G4PenelopeCompton.cc | 184 +- .../src/G4PenelopeGammaConversion.cc | 14 +- .../lowenergy/src/G4PenelopeInterpolator.cc | 6 +- .../lowenergy/src/G4PenelopePhotoElectric.cc | 20 +- .../lowenergy/src/G4PenelopeRayleigh.cc | 14 +- .../lowenergy/src/G4QAOLowEnergyLoss.cc | 57 +- .../lowenergy/src/G4RangeTest.cc | 6 +- .../lowenergy/src/G4SemiLogInterpolation.cc | 2 +- .../lowenergy/src/G4ShellData.cc | 26 +- .../lowenergy/src/G4ShellEMDataSet.cc | 16 +- .../lowenergy/src/G4ShellVacancy.cc | 4 +- ...ition.cc => G4VBremAngularDistribution.cc} | 84 +- .../lowenergy/src/G4VCrossSectionHandler.cc | 40 +- .../lowenergy/src/G4VLowEnergyModel.cc | 2 +- .../lowenergy/src/G4VeLowEnergyLoss.cc | 104 +- .../src/G4VhElectronicStoppingPower.cc | 2 +- .../lowenergy/src/G4VhShellCrossSection.cc | 2 +- .../src/G4eBremsstrahlungSpectrum.cc | 48 +- .../src/G4eIonisationCrossSectionHandler.cc | 8 +- .../lowenergy/src/G4eIonisationParameters.cc | 38 +- .../lowenergy/src/G4eIonisationSpectrum.cc | 50 +- .../lowenergy/src/G4eLowEnergyLoss.cc | 6 +- .../lowenergy/src/G4hBetheBlochModel.cc | 18 +- .../lowenergy/src/G4hIonEffChargeSquare.cc | 34 +- .../lowenergy/src/G4hLowEnergyIonisation.cc | 50 +- .../lowenergy/src/G4hLowEnergyLoss.cc | 10 +- .../lowenergy/src/G4hParametrisedLossModel.cc | 36 +- .../lowenergy/src/G4hShellCrossSection.cc | 4 +- .../processes/electromagnetic/muons/History | 23 +- .../muons/include/G4MuBetheBlochModel.hh | 6 +- .../muons/include/G4MuBremsstrahlung.hh | 6 +- .../muons/include/G4MuBremsstrahlung.icc | 6 +- .../muons/include/G4MuBremsstrahlungModel.hh | 6 +- .../muons/include/G4MuBremsstrahlungSTD.hh | 6 +- .../muons/include/G4MuIonisation.hh | 6 +- .../muons/include/G4MuIonisation.icc | 2 +- .../muons/include/G4MuIonisationSTD.hh | 20 +- .../muons/include/G4MuPairProduction.hh | 8 +- .../muons/include/G4MuPairProduction.icc | 6 +- .../muons/include/G4MuPairProductionModel.hh | 8 +- .../muons/include/G4MuPairProductionSTD.hh | 14 +- .../muons/include/G4VMuEnergyLoss.hh | 8 +- .../muons/include/G4VMuEnergyLoss.icc | 2 +- .../muons/src/G4MuBetheBlochModel.cc | 12 +- .../muons/src/G4MuBremsstrahlung.cc | 2 +- .../muons/src/G4MuBremsstrahlungModel.cc | 14 +- .../muons/src/G4MuBremsstrahlungSTD.cc | 10 +- .../muons/src/G4MuIonisation.cc | 6 +- .../muons/src/G4MuIonisationSTD.cc | 34 +- .../muons/src/G4MuPairProduction.cc | 34 +- .../muons/src/G4MuPairProductionModel.cc | 46 +- .../muons/src/G4MuPairProductionSTD.cc | 13 +- .../muons/src/G4VMuEnergyLoss.cc | 14 +- .../electromagnetic/standard/History | 24 +- .../standard/include/G4AnnihiToMuPair.hh | 2 +- .../standard/include/G4ComptonScattering.hh | 2 +- .../standard/include/G4ComptonScattering.icc | 2 +- .../standard/include/G4GammaConversion.hh | 2 +- .../standard/include/G4GammaConversion.icc | 2 +- .../include/G4GammaConversionToMuons.hh | 6 +- .../include/G4GammaConversionToMuons.icc | 2 +- .../standard/include/G4MollerBhabhaModel.hh | 4 +- .../standard/include/G4PAIonisation.hh | 64 +- .../standard/include/G4PAIonisation.icc | 42 +- .../standard/include/G4PAIxSection.hh | 2 +- .../standard/include/G4PhotoElectricEffect.hh | 2 +- .../include/G4PhotoElectricEffect.icc | 2 +- .../include/G4PolarizedComptonScattering.hh | 2 +- .../include/G4SynchrotronRadiation.hh | 6 +- .../standard/include/G4VPAIenergyLoss.hh | 8 +- .../standard/include/G4VPAIenergyLoss.icc | 21 +- .../standard/include/G4VeEnergyLoss.hh | 2 +- .../standard/include/G4VeEnergyLoss.icc | 6 +- .../standard/include/G4VhEnergyLoss.hh | 2 +- .../standard/include/G4VhEnergyLoss.icc | 2 +- .../standard/include/G4eBremsstrahlung.hh | 6 +- .../standard/include/G4eBremsstrahlung.icc | 2 +- .../include/G4eBremsstrahlungModel.hh | 6 +- .../standard/include/G4eBremsstrahlungSTD.hh | 6 +- .../standard/include/G4eIonisation.hh | 6 +- .../standard/include/G4eIonisation.icc | 2 +- .../standard/include/G4eIonisationSTD.hh | 14 +- .../standard/include/G4eplusAnnihilation.hh | 2 +- .../standard/include/G4eplusAnnihilation.icc | 2 +- .../standard/include/G4hIonisation.hh | 6 +- .../standard/include/G4hIonisation.icc | 11 +- .../standard/include/G4hIonisationSTD.hh | 18 +- .../standard/include/G4ionIonisation.hh | 11 +- .../standard/src/G4AnnihiToMuPair.cc | 2 +- .../standard/src/G4ComptonScattering.cc | 6 +- .../standard/src/G4GammaConversion.cc | 18 +- .../standard/src/G4GammaConversionToMuons.cc | 2 +- .../src/G4IonisationByLogicalVolume.cc | 9 +- .../standard/src/G4MollerBhabhaModel.cc | 33 +- .../standard/src/G4PAIonisation.cc | 628 +- .../standard/src/G4PAIxSection.cc | 327 +- .../standard/src/G4PhotoElectricEffect.cc | 6 +- .../src/G4PolarizedComptonScattering.cc | 6 +- .../standard/src/G4SynchrotronRadiation.cc | 8 +- .../standard/src/G4VPAIenergyLoss.cc | 2 +- .../standard/src/G4VeEnergyLoss.cc | 17 +- .../standard/src/G4VhEnergyLoss.cc | 10 +- .../standard/src/G4eBremsstrahlung.cc | 20 +- .../standard/src/G4eBremsstrahlungModel.cc | 262 +- .../standard/src/G4eBremsstrahlungSTD.cc | 8 +- .../standard/src/G4eIonisation.cc | 12 +- .../standard/src/G4eIonisationSTD.cc | 26 +- .../standard/src/G4eplusAnnihilation.cc | 8 +- .../standard/src/G4hIonisation.cc | 6 +- .../standard/src/G4hIonisationSTD.cc | 34 +- .../standard/src/G4ionIonisation.cc | 11 +- .../processes/electromagnetic/utils/History | 43 +- .../utils/include/G4BetheBlochModel.hh | 14 +- .../utils/include/G4BohrFluctuations.hh | 2 + .../utils/include/G4BraggModel.hh | 14 +- .../utils/include/G4EmModelManager.hh | 17 +- .../utils/include/G4EnergyLossMessenger.hh | 5 +- .../utils/include/G4EnergyLossTables.hh | 8 +- .../utils/include/G4IonFluctuations.hh | 2 + .../utils/include/G4LossTableBuilder.hh | 4 +- .../utils/include/G4LossTableManager.hh | 36 +- .../{G4LewisModel.hh => G4MscModel.hh} | 43 +- .../utils/include/G4MultipleScattering.hh | 2 +- .../utils/include/G4MultipleScattering.icc | 9 +- .../utils/include/G4MultipleScatteringSTD.hh | 191 +- .../utils/include/G4MultipleScatteringSTD.icc | 93 - .../utils/include/G4SCProcessorStand.hh | 2 +- .../utils/include/G4VEmModel.hh | 23 +- .../utils/include/G4VEnergyLoss.hh | 2 +- .../utils/include/G4VEnergyLossSTD.hh | 104 +- .../utils/include/G4VMultipleScattering.hh | 4 +- .../utils/include/G4VSubCutoffProcessor.hh | 4 +- .../utils/src/G4BetheBlochModel.cc | 12 +- .../utils/src/G4BohrFluctuations.cc | 28 +- .../electromagnetic/utils/src/G4BraggModel.cc | 47 +- .../utils/src/G4EmModelManager.cc | 113 +- .../utils/src/G4EnergyLossMessenger.cc | 18 +- .../utils/src/G4EnergyLossTables.cc | 2 +- .../utils/src/G4IonFluctuations.cc | 25 +- .../utils/src/G4LossTableBuilder.cc | 7 +- .../utils/src/G4LossTableManager.cc | 43 +- .../src/{G4LewisModel.cc => G4MscModel.cc} | 272 +- .../utils/src/G4MultipleScattering.cc | 203 +- .../utils/src/G4MultipleScatteringSTD.cc | 920 +- .../utils/src/G4SCProcessorStand.cc | 8 +- .../utils/src/G4UniversalFluctuation.cc | 11 +- .../utils/src/G4VEnergyLoss.cc | 20 +- .../utils/src/G4VEnergyLossSTD.cc | 220 +- .../utils/src/G4VMultipleScattering.cc | 11 +- .../processes/electromagnetic/xrays/History | 10 +- .../xrays/include/G4Cerenkov.hh | 2 +- .../xrays/include/G4ForwardXrayTR.hh | 11 +- .../xrays/include/G4GammaXTRadiator.hh | 2 +- .../xrays/include/G4RegularXTRadiator.hh | 2 +- .../xrays/include/G4Scintillation.hh | 2 +- .../xrays/include/G4TransitionRadiation.hh | 21 +- .../xrays/include/G4VXTRenergyLoss.hh | 6 +- .../electromagnetic/xrays/src/G4Cerenkov.cc | 2 +- .../xrays/src/G4ForwardXrayTR.cc | 7 +- .../xrays/src/G4GammaXTRadiator.cc | 14 +- .../xrays/src/G4RegularXTRadiator.cc | 12 +- .../xrays/src/G4Scintillation.cc | 15 +- .../xrays/src/G4TransitionRadiation.cc | 2 +- .../xrays/src/G4VXTRenergyLoss.cc | 60 +- .../hadronic/cross_sections/GNUmakefile | 2 +- .../include/G4CrossSectionDataStore.hh | 2 +- .../include/G4ElectroNuclearCrossSection.hh | 12 +- .../include/G4HadronCaptureDataSet.hh | 2 +- .../include/G4HadronCrossSections.hh | 6 +- .../include/G4HadronElasticDataSet.hh | 2 +- .../include/G4HadronFissionDataSet.hh | 2 +- .../include/G4HadronInelasticDataSet.hh | 2 +- .../include/G4PhotoNuclearCrossSection.hh | 8 +- .../cross_sections/include/G4PiData.hh | 6 +- .../include/G4PiNuclearCrossSection.hh | 6 +- .../include/G4VCrossSectionDataSet.hh | 2 +- .../src/G4ElectroNuclearCrossSection.cc | 22 +- .../src/G4HadronCaptureDataSet.cc | 2 +- .../src/G4HadronCrossSections.cc | 8 +- .../src/G4HadronElasticDataSet.cc | 2 +- .../src/G4HadronFissionDataSet.cc | 2 +- .../src/G4HadronInelasticDataSet.cc | 2 +- .../src/G4NeutronInelasticCrossSection.cc | 2 +- .../src/G4PhotoNuclearCrossSection.cc | 18 +- .../hadronic/cross_sections/src/G4PiData.cc | 12 +- .../src/G4PiNuclearCrossSection.cc | 16 +- .../src/G4ProtonInelasticCrossSection.cc | 2 +- .../src/G4TripathiCrossSection.cc | 2 +- .../include/G4EnergyRangeManager.hh | 2 +- .../management/include/G4HadLeadBias.hh | 6 +- .../include/G4HadronInelasticProcess.hh | 7 +- .../include/G4HadronicInteraction.hh | 2 +- .../include/G4HadronicInteractionRegistry.hh | 8 +- .../management/include/G4HadronicProcess.hh | 5 +- .../include/G4InelasticInteraction.hh | 2 +- .../management/include/G4NoModelFound.hh | 22 + .../include/G4VLeadingParticleBiasing.hh | 2 +- .../management/src/G4EnergyRangeManager.cc | 2 +- .../hadronic/management/src/G4HadLeadBias.cc | 2 +- .../src/G4HadronInelasticProcess.cc | 4 +- .../src/G4HadronicInteractionRegistry.cc | 2 +- .../management/src/G4HadronicProcess.cc | 17 +- .../management/src/G4InelasticInteraction.cc | 6 +- .../cascade/cascade/include/G4Analyser.hh | 6 +- .../cascade/include/G4BertiniNucleiModel.hh | 26 +- .../cascade/cascade/include/G4BigBanger.hh | 4 +- .../cascade/include/G4CascadParticle.hh | 12 +- .../include/G4CascadSpecialFunctions.hh | 10 +- .../cascade/include/G4CollisionOutput.hh | 28 +- .../include/G4ElementaryParticleCollider.hh | 18 +- .../cascade/include/G4FissionConfiguration.hh | 2 +- .../cascade/cascade/include/G4FissionStore.hh | 4 +- .../cascade/cascade/include/G4Fissioner.hh | 6 +- .../cascade/include/G4InteractionCase.hh | 8 +- .../include/G4InuclElementaryParticle.hh | 4 +- .../cascade/cascade/include/G4InuclNuclei.hh | 4 +- .../cascade/include/G4InuclParticle.hh | 12 +- .../include/G4InuclSpecialFunctions.hh | 12 +- .../cascade/include/G4LorentzConvertor.hh | 26 +- .../cascade/cascade/include/G4NuclWatcher.hh | 38 +- .../cascade/cascade/include/G4NucleiModel.hh | 26 +- .../cascade/cascade/include/G4WatcherGun.hh | 6 +- .../models/cascade/cascade/src/G4Analyser.cc | 14 +- .../cascade/src/G4BertiniNucleiModel.cc | 100 +- .../cascade/src/G4BertiniRegionModel.cc | 189 - .../models/cascade/cascade/src/G4BigBanger.cc | 58 +- .../cascade/cascade/src/G4CascadParticle.cc | 4 +- .../cascade/src/G4CascadSpecialFunctions.cc | 16 +- .../cascade/cascade/src/G4CascadeInterface.cc | 24 +- .../cascade/cascade/src/G4CollisionOutput.cc | 38 +- .../src/G4ElementaryParticleCollider.cc | 110 +- .../cascade/src/G4EquilibriumEvaporator.cc | 60 +- .../cascade/cascade/src/G4FissionStore.cc | 2 +- .../models/cascade/cascade/src/G4Fissioner.cc | 18 +- .../cascade/src/G4IntraNucleiCascader.cc | 26 +- .../cascade/cascade/src/G4InuclCollider.cc | 20 +- .../cascade/src/G4InuclSpecialFunctions.cc | 10 +- .../cascade/cascade/src/G4LorentzConvertor.cc | 18 +- .../cascade/src/G4NonEquilibriumEvaporator.cc | 22 +- .../cascade/cascade/src/G4NucleiModel.cc | 100 +- .../cascade/cascade/src/G4RegionModel.cc | 189 - .../cascade/cascade/src/G4WatcherGun.cc | 6 +- .../cascade/cascade/src/bindingEnergyExact.cc | 2 +- .../models/cascade/cascade/src/paraMaker.cc | 12 +- .../hadronic/models/cascade/doc/GNUmakefile | 12 - .../hadronic/models/cascade/doc/README | 4 - .../hadronic/models/cascade/doc/espcrc2.sty | 226 - .../models/cascade/doc/evaporationUml.eps | 852 - .../hadronic/models/cascade/doc/hetc.eps | 670 - .../hadronic/models/cascade/doc/hetc.mdl | 9142 -- .../hadronic/models/cascade/doc/manCascade.ps | 7067 - .../models/cascade/doc/manCascade.tex | 53 - .../hadronic/models/cascade/doc/manHetc.tex | 2393 - .../hadronic/models/cascade/doc/manInucl.tex | 702 - .../hadronic/models/cascade/doc/massPb.eps2 | 990 - .../models/cascade/doc/preEquilibriumUml.eps | 726 - .../cascade/evaporation/doc/evaporation.mdl | 5468 - .../evaporation/doc/evaporation.mdl.eps | 1256 - .../include/G4BertiniEvaporation.hh | 6 +- .../evaporation/src/G4BEChargedChannel.cc | 8 +- .../evaporation/src/G4BENeutronChannel.cc | 14 +- .../evaporation/src/G4BertiniEvaporation.cc | 12 +- .../src/G4BertiniEvaporationChannel.cc | 4 +- .../models/cascade/pre_compound/GNUmakefile | 4 +- .../pre_compound/include/G4PreEquilibrium.hh | 8 +- .../pre_compound/src/G4PreEquilibrium.cc | 2 +- .../body/include/G4Chips.hh | 2 +- .../body/include/G4QCHIPSWorld.hh | 6 +- .../body/include/G4QCandidate.hh | 8 +- .../body/include/G4QCandidateVector.hh | 8 +- .../body/include/G4QChipolino.hh | 8 +- .../body/include/G4QContent.hh | 10 +- .../body/include/G4QDecayChan.hh | 8 +- .../body/include/G4QDecayChanVector.hh | 8 +- .../body/include/G4QEnvironment.hh | 2 +- .../body/include/G4QHadron.hh | 2 +- .../body/include/G4QHadronVector.hh | 8 +- .../body/include/G4QNucleus.hh | 8 +- .../body/include/G4QPDGCode.hh | 10 +- .../body/include/G4QPDGCodeVector.hh | 8 +- .../body/include/G4QParentCluster.hh | 10 +- .../body/include/G4QParentClusterVector.hh | 8 +- .../body/include/G4QParticle.hh | 8 +- .../body/include/G4QParticleVector.hh | 8 +- .../body/include/G4QSelector.hh | 2 +- .../body/include/G4Quasmon.hh | 10 +- .../body/include/G4QuasmonVector.hh | 8 +- .../body/src/G4QCHIPSWorld.cc | 8 +- .../body/src/G4QCandidate.cc | 8 +- .../body/src/G4QChipolino.cc | 6 +- .../body/src/G4QContent.cc | 8 +- .../body/src/G4QDecayChan.cc | 10 +- .../body/src/G4QEnvironment.cc | 40 +- .../body/src/G4QHadron.cc | 2 +- .../body/src/G4QNucleus.cc | 8 +- .../body/src/G4QPDGCode.cc | 10 +- .../body/src/G4QParentCluster.cc | 8 +- .../body/src/G4QParticle.cc | 10 +- .../body/src/G4QSelector.cc | 2 +- .../body/src/G4Quasmon.cc | 10 +- .../include/G4ChiralInvariantPhaseSpace.hh | 2 +- .../include/G4ElectroNuclearReaction.hh | 2 +- .../include/G4GammaNuclearReaction.hh | 2 +- .../interface/src/G4StringChipsInterface.cc | 16 +- .../G4StringChipsParticleLevelInterface.cc | 26 +- .../generator/de_excitation/GNUmakefile | 4 +- .../include/G4AlphaCoulombBarrier.hh | 2 +- .../include/G4AlphaEvaporationChannel.hh | 2 +- .../include/G4AlphaEvaporationProbability.hh | 14 +- .../include/G4AlphaGEMChannel.hh | 2 +- .../include/G4AlphaGEMProbability.hh | 12 +- .../de_excitation/include/G4B10GEMChannel.hh | 2 +- .../include/G4B10GEMCoulombBarrier.hh | 2 +- .../include/G4B10GEMProbability.hh | 10 +- .../de_excitation/include/G4B11GEMChannel.hh | 2 +- .../include/G4B11GEMCoulombBarrier.hh | 2 +- .../include/G4B11GEMProbability.hh | 10 +- .../de_excitation/include/G4B12GEMChannel.hh | 2 +- .../include/G4B12GEMCoulombBarrier.hh | 2 +- .../include/G4B12GEMProbability.hh | 10 +- .../de_excitation/include/G4B13GEMChannel.hh | 2 +- .../include/G4B13GEMCoulombBarrier.hh | 2 +- .../include/G4B13GEMProbability.hh | 10 +- .../de_excitation/include/G4B8GEMChannel.hh | 2 +- .../include/G4B8GEMCoulombBarrier.hh | 2 +- .../include/G4B8GEMProbability.hh | 10 +- .../include/G4B9FermiFragment.hh | 2 +- .../de_excitation/include/G4Be10GEMChannel.hh | 2 +- .../include/G4Be10GEMCoulombBarrier.hh | 2 +- .../include/G4Be10GEMProbability.hh | 10 +- .../de_excitation/include/G4Be11GEMChannel.hh | 2 +- .../include/G4Be11GEMCoulombBarrier.hh | 2 +- .../include/G4Be11GEMProbability.hh | 10 +- .../de_excitation/include/G4Be12GEMChannel.hh | 2 +- .../include/G4Be12GEMCoulombBarrier.hh | 2 +- .../include/G4Be12GEMProbability.hh | 10 +- .../de_excitation/include/G4Be7GEMChannel.hh | 2 +- .../include/G4Be7GEMCoulombBarrier.hh | 2 +- .../include/G4Be7GEMProbability.hh | 10 +- .../include/G4Be8FermiFragment.hh | 2 +- .../de_excitation/include/G4Be9GEMChannel.hh | 2 +- .../include/G4Be9GEMCoulombBarrier.hh | 2 +- .../include/G4Be9GEMProbability.hh | 10 +- .../de_excitation/include/G4C10GEMChannel.hh | 2 +- .../include/G4C10GEMCoulombBarrier.hh | 2 +- .../include/G4C10GEMProbability.hh | 10 +- .../de_excitation/include/G4C11GEMChannel.hh | 2 +- .../include/G4C11GEMCoulombBarrier.hh | 2 +- .../include/G4C11GEMProbability.hh | 10 +- .../de_excitation/include/G4C12GEMChannel.hh | 2 +- .../include/G4C12GEMCoulombBarrier.hh | 2 +- .../include/G4C12GEMProbability.hh | 10 +- .../de_excitation/include/G4C13GEMChannel.hh | 2 +- .../include/G4C13GEMCoulombBarrier.hh | 2 +- .../include/G4C13GEMProbability.hh | 10 +- .../de_excitation/include/G4C14GEMChannel.hh | 2 +- .../include/G4C14GEMCoulombBarrier.hh | 2 +- .../include/G4C14GEMProbability.hh | 10 +- .../de_excitation/include/G4C15GEMChannel.hh | 2 +- .../include/G4C15GEMCoulombBarrier.hh | 2 +- .../include/G4C15GEMProbability.hh | 10 +- .../de_excitation/include/G4C16GEMChannel.hh | 2 +- .../include/G4C16GEMCoulombBarrier.hh | 2 +- .../include/G4C16GEMProbability.hh | 10 +- .../G4CameronGilbertPairingCorrections.hh | 2 +- .../G4CameronGilbertShellCorrections.hh | 2 +- .../G4CameronShellPlusPairingCorrections.hh | 2 +- .../G4CameronTruranHilfPairingCorrections.hh | 2 +- .../G4CameronTruranHilfShellCorrections.hh | 2 +- .../include/G4CompetitiveFission.hh | 2 +- .../G4ConstantLevelDensityParameter.hh | 6 +- .../include/G4ContinuumGammaDeexcitation.hh | 2 +- .../include/G4ContinuumGammaTransition.hh | 5 +- .../include/G4CookPairingCorrections.hh | 2 +- .../include/G4CookShellCorrections.hh | 2 +- .../de_excitation/include/G4CoulombBarrier.hh | 9 +- .../include/G4DeuteronCoulombBarrier.hh | 2 +- .../include/G4DeuteronEvaporationChannel.hh | 2 +- .../G4DeuteronEvaporationProbability.hh | 12 +- .../include/G4DeuteronGEMChannel.hh | 2 +- .../include/G4DeuteronGEMProbability.hh | 12 +- .../include/G4DiscreteGammaDeexcitation.hh | 2 +- .../de_excitation/include/G4Evaporation.hh | 12 +- .../include/G4EvaporationChannel.hh | 2 +- .../include/G4EvaporationFactory.hh | 8 +- .../include/G4EvaporationGEMFactory.hh | 8 +- .../G4EvaporationLevelDensityParameter.hh | 2 +- .../include/G4EvaporationProbability.hh | 18 +- .../include/G4ExcitationHandler.hh | 2 +- .../de_excitation/include/G4F17GEMChannel.hh | 2 +- .../include/G4F17GEMCoulombBarrier.hh | 2 +- .../include/G4F17GEMProbability.hh | 10 +- .../de_excitation/include/G4F18GEMChannel.hh | 2 +- .../include/G4F18GEMCoulombBarrier.hh | 2 +- .../include/G4F18GEMProbability.hh | 10 +- .../de_excitation/include/G4F19GEMChannel.hh | 2 +- .../include/G4F19GEMCoulombBarrier.hh | 2 +- .../include/G4F19GEMProbability.hh | 10 +- .../de_excitation/include/G4F20GEMChannel.hh | 2 +- .../include/G4F20GEMCoulombBarrier.hh | 2 +- .../include/G4F20GEMProbability.hh | 10 +- .../de_excitation/include/G4F21GEMChannel.hh | 2 +- .../include/G4F21GEMCoulombBarrier.hh | 2 +- .../include/G4F21GEMProbability.hh | 10 +- .../de_excitation/include/G4FermiBreakUp.hh | 2 +- .../include/G4FermiConfiguration.hh | 10 +- .../include/G4FermiConfigurationList.hh | 12 +- .../de_excitation/include/G4FissionBarrier.hh | 2 +- .../include/G4FissionLevelDensityParameter.hh | 2 +- .../include/G4FissionParameters.hh | 2 +- .../include/G4FissionProbability.hh | 2 +- .../de_excitation/include/G4GEMChannel.hh | 2 +- .../include/G4GEMCoulombBarrierHE.hh | 2 +- .../de_excitation/include/G4GEMProbability.hh | 35 +- .../include/G4He3CoulombBarrier.hh | 2 +- .../include/G4He3EvaporationChannel.hh | 2 +- .../include/G4He3EvaporationProbability.hh | 12 +- .../de_excitation/include/G4He3GEMChannel.hh | 2 +- .../include/G4He3GEMProbability.hh | 12 +- .../include/G4He5FermiFragment.hh | 2 +- .../de_excitation/include/G4He6GEMChannel.hh | 2 +- .../include/G4He6GEMCoulombBarrier.hh | 2 +- .../include/G4He6GEMProbability.hh | 10 +- .../de_excitation/include/G4He8GEMChannel.hh | 2 +- .../include/G4He8GEMCoulombBarrier.hh | 2 +- .../include/G4He8GEMProbability.hh | 10 +- .../include/G4Li5FermiFragment.hh | 2 +- .../de_excitation/include/G4Li6GEMChannel.hh | 2 +- .../include/G4Li6GEMCoulombBarrier.hh | 2 +- .../include/G4Li6GEMProbability.hh | 10 +- .../de_excitation/include/G4Li7GEMChannel.hh | 2 +- .../include/G4Li7GEMCoulombBarrier.hh | 2 +- .../include/G4Li7GEMProbability.hh | 10 +- .../de_excitation/include/G4Li8GEMChannel.hh | 2 +- .../include/G4Li8GEMCoulombBarrier.hh | 2 +- .../include/G4Li8GEMProbability.hh | 10 +- .../de_excitation/include/G4Li9GEMChannel.hh | 2 +- .../include/G4Li9GEMCoulombBarrier.hh | 2 +- .../include/G4Li9GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg22GEMChannel.hh | 2 +- .../include/G4Mg22GEMCoulombBarrier.hh | 2 +- .../include/G4Mg22GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg23GEMChannel.hh | 2 +- .../include/G4Mg23GEMCoulombBarrier.hh | 2 +- .../include/G4Mg23GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg24GEMChannel.hh | 2 +- .../include/G4Mg24GEMCoulombBarrier.hh | 2 +- .../include/G4Mg24GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg25GEMChannel.hh | 2 +- .../include/G4Mg25GEMCoulombBarrier.hh | 2 +- .../include/G4Mg25GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg26GEMChannel.hh | 2 +- .../include/G4Mg26GEMCoulombBarrier.hh | 2 +- .../include/G4Mg26GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg27GEMChannel.hh | 2 +- .../include/G4Mg27GEMCoulombBarrier.hh | 2 +- .../include/G4Mg27GEMProbability.hh | 10 +- .../de_excitation/include/G4Mg28GEMChannel.hh | 2 +- .../include/G4Mg28GEMCoulombBarrier.hh | 2 +- .../include/G4Mg28GEMProbability.hh | 10 +- .../de_excitation/include/G4N12GEMChannel.hh | 2 +- .../include/G4N12GEMCoulombBarrier.hh | 2 +- .../include/G4N12GEMProbability.hh | 10 +- .../de_excitation/include/G4N13GEMChannel.hh | 2 +- .../include/G4N13GEMCoulombBarrier.hh | 2 +- .../include/G4N13GEMProbability.hh | 10 +- .../de_excitation/include/G4N14GEMChannel.hh | 2 +- .../include/G4N14GEMCoulombBarrier.hh | 2 +- .../include/G4N14GEMProbability.hh | 10 +- .../de_excitation/include/G4N15GEMChannel.hh | 2 +- .../include/G4N15GEMCoulombBarrier.hh | 2 +- .../include/G4N15GEMProbability.hh | 10 +- .../de_excitation/include/G4N16GEMChannel.hh | 2 +- .../include/G4N16GEMCoulombBarrier.hh | 2 +- .../include/G4N16GEMProbability.hh | 10 +- .../de_excitation/include/G4N17GEMChannel.hh | 2 +- .../include/G4N17GEMCoulombBarrier.hh | 2 +- .../include/G4N17GEMProbability.hh | 10 +- .../de_excitation/include/G4Na21GEMChannel.hh | 2 +- .../include/G4Na21GEMCoulombBarrier.hh | 2 +- .../include/G4Na21GEMProbability.hh | 10 +- .../de_excitation/include/G4Na22GEMChannel.hh | 2 +- .../include/G4Na22GEMCoulombBarrier.hh | 2 +- .../include/G4Na22GEMProbability.hh | 10 +- .../de_excitation/include/G4Na23GEMChannel.hh | 2 +- .../include/G4Na23GEMCoulombBarrier.hh | 2 +- .../include/G4Na23GEMProbability.hh | 10 +- .../de_excitation/include/G4Na24GEMChannel.hh | 2 +- .../include/G4Na24GEMCoulombBarrier.hh | 2 +- .../include/G4Na24GEMProbability.hh | 10 +- .../de_excitation/include/G4Na25GEMChannel.hh | 2 +- .../include/G4Na25GEMCoulombBarrier.hh | 2 +- .../include/G4Na25GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne18GEMChannel.hh | 2 +- .../include/G4Ne18GEMCoulombBarrier.hh | 2 +- .../include/G4Ne18GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne19GEMChannel.hh | 2 +- .../include/G4Ne19GEMCoulombBarrier.hh | 2 +- .../include/G4Ne19GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne20GEMChannel.hh | 2 +- .../include/G4Ne20GEMCoulombBarrier.hh | 2 +- .../include/G4Ne20GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne21GEMChannel.hh | 2 +- .../include/G4Ne21GEMCoulombBarrier.hh | 2 +- .../include/G4Ne21GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne22GEMChannel.hh | 2 +- .../include/G4Ne22GEMCoulombBarrier.hh | 2 +- .../include/G4Ne22GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne23GEMChannel.hh | 2 +- .../include/G4Ne23GEMCoulombBarrier.hh | 2 +- .../include/G4Ne23GEMProbability.hh | 10 +- .../de_excitation/include/G4Ne24GEMChannel.hh | 2 +- .../include/G4Ne24GEMCoulombBarrier.hh | 2 +- .../include/G4Ne24GEMProbability.hh | 10 +- .../include/G4NeutronCoulombBarrier.hh | 6 +- .../include/G4NeutronEvaporationChannel.hh | 2 +- .../G4NeutronEvaporationProbability.hh | 13 +- .../include/G4NeutronGEMChannel.hh | 2 +- .../include/G4NeutronGEMProbability.hh | 15 +- .../include/G4NuclearLevelManager.hh | 9 +- .../include/G4NuclearLevelStore.hh | 6 +- .../de_excitation/include/G4O14GEMChannel.hh | 2 +- .../include/G4O14GEMCoulombBarrier.hh | 2 +- .../include/G4O14GEMProbability.hh | 10 +- .../de_excitation/include/G4O15GEMChannel.hh | 2 +- .../include/G4O15GEMCoulombBarrier.hh | 2 +- .../include/G4O15GEMProbability.hh | 10 +- .../de_excitation/include/G4O16GEMChannel.hh | 2 +- .../include/G4O16GEMCoulombBarrier.hh | 2 +- .../include/G4O16GEMProbability.hh | 10 +- .../de_excitation/include/G4O17GEMChannel.hh | 2 +- .../include/G4O17GEMCoulombBarrier.hh | 2 +- .../include/G4O17GEMProbability.hh | 10 +- .../de_excitation/include/G4O18GEMChannel.hh | 2 +- .../include/G4O18GEMCoulombBarrier.hh | 2 +- .../include/G4O18GEMProbability.hh | 10 +- .../de_excitation/include/G4O19GEMChannel.hh | 2 +- .../include/G4O19GEMCoulombBarrier.hh | 2 +- .../include/G4O19GEMProbability.hh | 10 +- .../de_excitation/include/G4O20GEMChannel.hh | 2 +- .../include/G4O20GEMCoulombBarrier.hh | 2 +- .../include/G4O20GEMProbability.hh | 10 +- .../include/G4PairingCorrection.hh | 14 +- .../include/G4ParaFissionModel.hh | 2 +- .../include/G4ProtonCoulombBarrier.hh | 2 +- .../include/G4ProtonEvaporationChannel.hh | 2 +- .../include/G4ProtonEvaporationProbability.hh | 12 +- .../include/G4ProtonGEMChannel.hh | 2 +- .../include/G4ProtonGEMProbability.hh | 12 +- .../de_excitation/include/G4PtrLevelVector.hh | 4 +- .../de_excitation/include/G4RandGeneralTmp.hh | 2 +- .../include/G4ShellCorrection.hh | 2 +- .../de_excitation/include/G4Solver.hh | 2 +- .../de_excitation/include/G4Solver.icc | 4 +- .../include/G4StableFermiFragment.hh | 2 +- .../de_excitation/include/G4StatMF.hh | 2 +- .../de_excitation/include/G4StatMFChannel.hh | 10 +- .../de_excitation/include/G4StatMFFragment.hh | 2 +- .../include/G4StatMFMacroBiNucleon.hh | 6 +- .../include/G4StatMFMacroChemicalPotential.hh | 12 +- .../include/G4StatMFMacroMultiNucleon.hh | 2 +- .../include/G4StatMFMacroMultiplicity.hh | 12 +- .../include/G4StatMFMacroNucleon.hh | 6 +- .../include/G4StatMFMacroTemperature.hh | 10 +- .../include/G4StatMFMacroTetraNucleon.hh | 6 +- .../include/G4StatMFMacroTriNucleon.hh | 6 +- .../include/G4StatMFMacrocanonical.hh | 8 +- .../include/G4StatMFMicroManager.hh | 6 +- .../include/G4StatMFMicroPartition.hh | 10 +- .../include/G4StatMFMicrocanonical.hh | 12 +- .../include/G4StatMFParameters.hh | 2 +- .../include/G4TritonCoulombBarrier.hh | 2 +- .../include/G4TritonEvaporationChannel.hh | 2 +- .../include/G4TritonEvaporationProbability.hh | 12 +- .../include/G4TritonGEMChannel.hh | 2 +- .../include/G4TritonGEMProbability.hh | 12 +- .../include/G4UnstableFermiFragment.hh | 8 +- .../include/G4VCoulombBarrier.hh | 2 +- .../include/G4VEmissionProbability.hh | 2 +- .../de_excitation/include/G4VEvaporation.hh | 2 +- .../include/G4VEvaporationChannel.hh | 2 +- .../include/G4VEvaporationFactory.hh | 14 +- .../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 | 12 +- .../src/G4AlphaEvaporationChannel.cc | 12 +- .../src/G4AlphaEvaporationProbability.cc | 18 +- .../de_excitation/src/G4AlphaGEMChannel.cc | 8 +- .../src/G4AlphaGEMProbability.cc | 14 +- .../de_excitation/src/G4B10GEMProbability.cc | 12 +- .../de_excitation/src/G4B11GEMProbability.cc | 12 +- .../de_excitation/src/G4B12GEMProbability.cc | 12 +- .../de_excitation/src/G4B13GEMProbability.cc | 12 +- .../de_excitation/src/G4B8GEMProbability.cc | 12 +- .../de_excitation/src/G4B9FermiFragment.cc | 18 +- .../de_excitation/src/G4Be10GEMProbability.cc | 12 +- .../de_excitation/src/G4Be11GEMProbability.cc | 12 +- .../de_excitation/src/G4Be12GEMProbability.cc | 12 +- .../de_excitation/src/G4Be7GEMProbability.cc | 12 +- .../de_excitation/src/G4Be8FermiFragment.cc | 18 +- .../de_excitation/src/G4Be9GEMProbability.cc | 12 +- .../de_excitation/src/G4C10GEMProbability.cc | 12 +- .../de_excitation/src/G4C11GEMProbability.cc | 12 +- .../de_excitation/src/G4C12GEMProbability.cc | 12 +- .../de_excitation/src/G4C13GEMProbability.cc | 12 +- .../de_excitation/src/G4C14GEMProbability.cc | 12 +- .../de_excitation/src/G4C15GEMProbability.cc | 12 +- .../de_excitation/src/G4C16GEMProbability.cc | 12 +- .../src/G4CameronGilbertPairingCorrections.cc | 2 +- .../src/G4CameronGilbertShellCorrections.cc | 2 +- .../G4CameronShellPlusPairingCorrections.cc | 2 +- .../G4CameronTruranHilfPairingCorrections.cc | 2 +- .../G4CameronTruranHilfShellCorrections.cc | 2 +- .../de_excitation/src/G4CompetitiveFission.cc | 38 +- .../src/G4ConstantLevelDensityParameter.cc | 10 +- .../src/G4ContinuumGammaDeexcitation.cc | 8 +- .../src/G4ContinuumGammaTransition.cc | 21 +- .../src/G4CookPairingCorrections.cc | 2 +- .../src/G4CookShellCorrections.cc | 2 +- .../de_excitation/src/G4CoulombBarrier.cc | 24 +- .../src/G4DeuteronCoulombBarrier.cc | 12 +- .../src/G4DeuteronEvaporationChannel.cc | 8 +- .../src/G4DeuteronEvaporationProbability.cc | 18 +- .../de_excitation/src/G4DeuteronGEMChannel.cc | 8 +- .../src/G4DeuteronGEMProbability.cc | 12 +- .../src/G4DiscreteGammaDeexcitation.cc | 10 +- .../src/G4DiscreteGammaTransition.cc | 15 +- .../de_excitation/src/G4DummyProbability.cc | 16 +- .../de_excitation/src/G4E1Probability.cc | 14 +- .../de_excitation/src/G4E1Probability001.cc | 15 +- .../de_excitation/src/G4E1Probability01.cc | 14 +- .../de_excitation/src/G4E1Probability10.cc | 14 +- .../de_excitation/src/G4E1Probability100.cc | 14 +- .../src/G4E1SingleProbability001.cc | 14 +- .../src/G4E1SingleProbability01.cc | 14 +- .../src/G4E1SingleProbability1.cc | 14 +- .../src/G4E1SingleProbability10.cc | 14 +- .../src/G4E1SingleProbability100.cc | 14 +- .../de_excitation/src/G4Evaporation.cc | 80 +- .../de_excitation/src/G4EvaporationChannel.cc | 19 +- .../de_excitation/src/G4EvaporationFactory.cc | 16 +- .../src/G4EvaporationGEMFactory.cc | 16 +- .../src/G4EvaporationLevelDensityParameter.cc | 22 +- .../src/G4EvaporationProbability.cc | 29 +- .../de_excitation/src/G4ExcitationHandler.cc | 40 +- .../de_excitation/src/G4F17GEMProbability.cc | 12 +- .../de_excitation/src/G4F18GEMProbability.cc | 12 +- .../de_excitation/src/G4F19GEMProbability.cc | 12 +- .../de_excitation/src/G4F20GEMProbability.cc | 12 +- .../de_excitation/src/G4F21GEMProbability.cc | 12 +- .../de_excitation/src/G4FermiBreakUp.cc | 20 +- .../de_excitation/src/G4FermiConfiguration.cc | 17 +- .../src/G4FermiConfigurationList.cc | 121 +- .../de_excitation/src/G4FissionBarrier.cc | 23 +- .../src/G4FissionLevelDensityParameter.cc | 12 +- .../de_excitation/src/G4FissionParameters.cc | 16 +- .../de_excitation/src/G4FissionProbability.cc | 26 +- .../de_excitation/src/G4GEMChannel.cc | 90 +- .../src/G4GEMCoulombBarrierHE.cc | 24 +- .../de_excitation/src/G4GEMProbability.cc | 24 +- .../de_excitation/src/G4He3CoulombBarrier.cc | 12 +- .../src/G4He3EvaporationChannel.cc | 8 +- .../src/G4He3EvaporationProbability.cc | 18 +- .../de_excitation/src/G4He3GEMChannel.cc | 8 +- .../de_excitation/src/G4He3GEMProbability.cc | 12 +- .../de_excitation/src/G4He5FermiFragment.cc | 18 +- .../de_excitation/src/G4He6GEMProbability.cc | 12 +- .../de_excitation/src/G4He8GEMProbability.cc | 12 +- .../de_excitation/src/G4Li5FermiFragment.cc | 18 +- .../de_excitation/src/G4Li6GEMProbability.cc | 12 +- .../de_excitation/src/G4Li7GEMProbability.cc | 12 +- .../de_excitation/src/G4Li8GEMProbability.cc | 12 +- .../de_excitation/src/G4Li9GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg22GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg23GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg24GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg25GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg26GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg27GEMProbability.cc | 12 +- .../de_excitation/src/G4Mg28GEMProbability.cc | 12 +- .../de_excitation/src/G4N12GEMProbability.cc | 12 +- .../de_excitation/src/G4N13GEMProbability.cc | 12 +- .../de_excitation/src/G4N14GEMProbability.cc | 12 +- .../de_excitation/src/G4N15GEMProbability.cc | 12 +- .../de_excitation/src/G4N16GEMProbability.cc | 12 +- .../de_excitation/src/G4N17GEMProbability.cc | 12 +- .../de_excitation/src/G4Na21GEMProbability.cc | 12 +- .../de_excitation/src/G4Na22GEMProbability.cc | 12 +- .../de_excitation/src/G4Na23GEMProbability.cc | 12 +- .../de_excitation/src/G4Na24GEMProbability.cc | 12 +- .../de_excitation/src/G4Na25GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne18GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne19GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne20GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne21GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne22GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne23GEMProbability.cc | 12 +- .../de_excitation/src/G4Ne24GEMProbability.cc | 12 +- .../src/G4NeutronCoulombBarrier.cc | 12 +- .../src/G4NeutronEvaporationChannel.cc | 8 +- .../src/G4NeutronEvaporationProbability.cc | 18 +- .../de_excitation/src/G4NeutronGEMChannel.cc | 8 +- .../src/G4NeutronGEMProbability.cc | 12 +- .../src/G4NuclearLevelManager.cc | 64 +- .../de_excitation/src/G4NuclearLevelStore.cc | 14 +- .../de_excitation/src/G4O14GEMProbability.cc | 12 +- .../de_excitation/src/G4O15GEMProbability.cc | 12 +- .../de_excitation/src/G4O16GEMProbability.cc | 12 +- .../de_excitation/src/G4O17GEMProbability.cc | 12 +- .../de_excitation/src/G4O18GEMProbability.cc | 12 +- .../de_excitation/src/G4O19GEMProbability.cc | 12 +- .../de_excitation/src/G4O20GEMProbability.cc | 12 +- .../de_excitation/src/G4PairingCorrection.cc | 2 +- .../de_excitation/src/G4PhotonEvaporation.cc | 8 +- .../src/G4ProtonCoulombBarrier.cc | 12 +- .../src/G4ProtonEvaporationChannel.cc | 8 +- .../src/G4ProtonEvaporationProbability.cc | 18 +- .../de_excitation/src/G4ProtonGEMChannel.cc | 8 +- .../src/G4ProtonGEMProbability.cc | 12 +- .../de_excitation/src/G4ShellCorrection.cc | 2 +- .../generator/de_excitation/src/G4Solver.cc | 2 +- .../src/G4StableFermiFragment.cc | 12 +- .../generator/de_excitation/src/G4StatMF.cc | 18 +- .../de_excitation/src/G4StatMFChannel.cc | 42 +- .../de_excitation/src/G4StatMFFragment.cc | 17 +- .../src/G4StatMFMacroBiNucleon.cc | 17 +- .../src/G4StatMFMacroChemicalPotential.cc | 14 +- .../src/G4StatMFMacroMultiNucleon.cc | 31 +- .../src/G4StatMFMacroMultiplicity.cc | 14 +- .../de_excitation/src/G4StatMFMacroNucleon.cc | 16 +- .../src/G4StatMFMacroTemperature.cc | 14 +- .../src/G4StatMFMacroTetraNucleon.cc | 17 +- .../src/G4StatMFMacroTriNucleon.cc | 18 +- .../src/G4StatMFMacrocanonical.cc | 38 +- .../de_excitation/src/G4StatMFMicroManager.cc | 23 +- .../src/G4StatMFMicroPartition.cc | 26 +- .../src/G4StatMFMicrocanonical.cc | 24 +- .../de_excitation/src/G4StatMFParameters.cc | 2 +- .../src/G4TritonCoulombBarrier.cc | 12 +- .../src/G4TritonEvaporationChannel.cc | 8 +- .../src/G4TritonEvaporationProbability.cc | 18 +- .../de_excitation/src/G4TritonGEMChannel.cc | 8 +- .../src/G4TritonGEMProbability.cc | 12 +- .../src/G4UnstableFermiFragment.cc | 18 +- .../de_excitation/src/G4VCoulombBarrier.cc | 16 +- .../src/G4VEmissionProbability.cc | 12 +- .../de_excitation/src/G4VEvaporation.cc | 12 +- .../src/G4VEvaporationChannel.cc | 8 +- .../src/G4VEvaporationFactory.cc | 14 +- .../de_excitation/src/G4VFermiBreakUp.cc | 12 +- .../de_excitation/src/G4VFermiFragment.cc | 12 +- .../de_excitation/src/G4VFissionBarrier.cc | 12 +- .../de_excitation/src/G4VGammaDeexcitation.cc | 14 +- .../src/G4VLevelDensityParameter.cc | 12 +- .../src/G4VMultiFragmentation.cc | 12 +- .../de_excitation/src/G4VStatMFEnsemble.cc | 12 +- .../src/G4VStatMFMacroCluster.cc | 14 +- .../generator/diffractive_string/GNUmakefile | 4 +- .../include/G4DiffractiveSplitableHadron.hh | 2 +- .../diffractive_string/include/G4FTFModel.hh | 2 +- .../include/G4FTFParticipants.hh | 8 +- .../src/G4DiffractiveSplitableHadron.cc | 14 +- .../diffractive_string/src/G4FTFModel.cc | 18 +- .../src/G4FTFParticipants.cc | 6 +- .../models/generator/high_energy/GNUmakefile | 4 +- .../high_energy/include/G4TheoFSGenerator.hh | 2 +- .../high_energy/src/G4TheoFSGenerator.cc | 14 +- .../generator/kinetic_model/GNUmakefile | 4 +- .../kinetic_model/include/G4BinaryCascade.hh | 2 +- .../kinetic_model/include/G4KM_DummyField.hh | 2 +- .../include/G4KM_NucleonEqRhs.hh | 6 +- .../include/G4KM_OpticalEqRhs.hh | 6 +- .../kinetic_model/include/G4NeutronField.hh | 4 +- .../kinetic_model/include/G4ProtonField.hh | 4 +- .../include/G4RKFieldIntegrator.hh | 8 +- .../kinetic_model/include/G4RKPropagation.hh | 14 +- .../generator/kinetic_model/src/G4Absorber.cc | 2 +- .../kinetic_model/src/G4AntiProtonField.cc | 12 +- .../kinetic_model/src/G4BinaryCascade.cc | 68 +- .../kinetic_model/src/G4FieldPropagation.cc | 6 +- .../src/G4GeneratorPrecompoundInterface.cc | 12 +- .../kinetic_model/src/G4KM_NucleonEqRhs.cc | 2 +- .../kinetic_model/src/G4KM_OpticalEqRhs.cc | 6 +- .../kinetic_model/src/G4KaonMinusField.cc | 10 +- .../kinetic_model/src/G4KaonPlusField.cc | 10 +- .../kinetic_model/src/G4KaonZeroField.cc | 10 +- .../kinetic_model/src/G4NeutronField.cc | 8 +- .../kinetic_model/src/G4PionMinusField.cc | 10 +- .../kinetic_model/src/G4PionPlusField.cc | 11 +- .../kinetic_model/src/G4PionZeroField.cc | 10 +- .../kinetic_model/src/G4ProtonField.cc | 8 +- .../kinetic_model/src/G4RKFieldIntegrator.cc | 12 +- .../kinetic_model/src/G4RKPropagation.cc | 20 +- .../kinetic_model/src/G4SigmaMinusField.cc | 10 +- .../kinetic_model/src/G4SigmaPlusField.cc | 10 +- .../kinetic_model/src/G4SigmaZeroField.cc | 10 +- .../kinetic_model/src/G4VFieldPropagation.cc | 8 +- .../kinetic_model/src/G4VNuclearField.cc | 6 +- .../models/generator/management/GNUmakefile | 4 +- .../management/include/G4V3DNucleus.hh | 8 +- .../include/G4VHighEnergyGenerator.hh | 2 +- .../include/G4VIntraNuclearTransportModel.hh | 2 +- .../management/include/G4VKineticNucleon.hh | 6 +- .../management/include/G4VNuclearDensity.hh | 2 +- .../management/include/G4VPreCompoundModel.hh | 6 +- .../generator/management/src/G4V3DNucleus.cc | 12 +- .../management/src/G4VHighEnergyGenerator.cc | 12 +- .../src/G4VIntraNuclearTransportModel.cc | 6 +- .../management/src/G4VKineticNucleon.cc | 6 +- .../management/src/G4VNuclearDensity.cc | 2 +- .../management/src/G4VPreCompoundModel.cc | 10 +- .../generator/pre_equilibrium/GNUmakefile | 4 +- .../include/G4GNASHTransitions.hh | 54 + .../pre_equilibrium/include/G4HETCAlpha.hh | 124 + .../include/G4HETCChargedFragment.hh | 77 + .../pre_equilibrium/include/G4HETCDeuteron.hh | 116 + .../include/G4HETCEmissionFactory.hh | 49 + .../pre_equilibrium/include/G4HETCFragment.hh | 93 + .../include/G4HETCFragment.icc | 46 + .../pre_equilibrium/include/G4HETCHe3.hh | 132 + .../pre_equilibrium/include/G4HETCNeutron.hh | 108 + .../pre_equilibrium/include/G4HETCProton.hh | 116 + .../pre_equilibrium/include/G4HETCTriton.hh | 118 + .../include/G4LowEIonFragmentation.hh | 8 +- .../include/G4PreCompoundAlpha.hh | 113 +- .../include/G4PreCompoundDeuteron.hh | 94 +- .../include/G4PreCompoundEmission.hh | 45 +- .../include/G4PreCompoundEmission.icc | 44 + .../include/G4PreCompoundEmissionFactory.hh | 49 + .../include/G4PreCompoundFragment.hh | 86 + .../include/G4PreCompoundFragmentVector.hh | 38 +- .../include/G4PreCompoundFragmentVector.icc | 31 +- .../include/G4PreCompoundHe3.hh | 109 +- .../include/G4PreCompoundIon.hh | 87 + .../include/G4PreCompoundModel.hh | 70 +- .../include/G4PreCompoundNeutron.hh | 75 +- .../include/G4PreCompoundNucleon.hh | 80 + .../include/G4PreCompoundParameters.hh | 4 +- .../include/G4PreCompoundProton.hh | 89 +- .../include/G4PreCompoundTransitions.hh | 22 +- .../include/G4PreCompoundTriton.hh | 99 +- .../include/G4VPreCompoundEmissionFactory.hh | 67 + .../include/G4VPreCompoundFragment.hh | 82 +- .../include/G4VPreCompoundFragment.icc | 25 +- .../include/G4VPreCompoundIon.hh | 62 +- .../include/G4VPreCompoundNucleon.hh | 41 +- .../include/G4VPreCompoundTransitions.hh | 40 + .../pre_equilibrium/src/G4GNASHTransitions.cc | 91 + .../pre_equilibrium/src/G4HETCAlpha.cc | 56 + .../src/G4HETCChargedFragment.cc | 47 + .../pre_equilibrium/src/G4HETCDeuteron.cc | 51 + .../src/G4HETCEmissionFactory.cc | 76 + .../pre_equilibrium/src/G4HETCFragment.cc | 129 + .../pre_equilibrium/src/G4HETCHe3.cc | 56 + .../pre_equilibrium/src/G4HETCNeutron.cc | 73 + .../pre_equilibrium/src/G4HETCProton.cc | 50 + .../pre_equilibrium/src/G4HETCTriton.cc | 55 + .../src/G4LowEIonFragmentation.cc | 12 +- .../src/G4PreCompoundEmission.cc | 402 +- .../src/G4PreCompoundEmissionFactory.cc | 76 + .../src/G4PreCompoundFragment.cc | 154 + .../src/G4PreCompoundFragmentVector.cc | 82 +- .../pre_equilibrium/src/G4PreCompoundIon.cc | 75 + .../pre_equilibrium/src/G4PreCompoundModel.cc | 88 +- .../src/G4PreCompoundNucleon.cc | 65 + .../src/G4PreCompoundParameters.cc | 4 +- .../src/G4PreCompoundTransitions.cc | 132 +- .../src/G4VPreCompoundEmissionFactory.cc | 69 + .../src/G4VPreCompoundFragment.cc | 138 +- .../pre_equilibrium/src/G4VPreCompoundIon.cc | 36 +- .../src/G4VPreCompoundNucleon.cc | 24 +- .../generator/quark_gluon_string/GNUmakefile | 6 +- .../include/G4AnnihilationCrossSection.hh | 6 +- .../include/G4GammaAnnCrossSection.hh | 4 +- .../include/G4HeavyIonParticipants.hh | 8 +- .../include/G4InelasticSplitableHadron.hh | 2 +- .../include/G4QGSMSplitableHadron.hh | 6 +- .../include/G4QGSParticipants.hh | 6 +- .../quark_gluon_string/include/G4SPBaryon.hh | 4 +- .../include/G4SPBaryonTable.hh | 6 +- .../src/G4DiffractiveStringBuilder.cc | 2 +- .../src/G4GammaAnnCrossSection.cc | 2 +- .../src/G4GammaParticipants.cc | 4 +- .../src/G4HeavyIonParticipants.cc | 14 +- .../src/G4InelasticSplitableHadron.cc | 4 +- .../quark_gluon_string/src/G4MesonSplitter.cc | 2 +- .../quark_gluon_string/src/G4PartonPair.cc | 2 +- .../src/G4QGSMParameters.cc | 2 +- .../src/G4QGSMSplitableHadron.cc | 6 +- .../src/G4QGSParticipants.cc | 10 +- .../quark_gluon_string/src/G4SPBaryon.cc | 10 +- .../src/G4SoftStringBuilder.cc | 2 +- .../models/generator/scattering/GNUmakefile | 5 +- .../include/G4BaryonPartialWidth.hh | 4 +- .../scattering/include/G4BaryonWidth.hh | 8 +- .../generator/scattering/include/G4Clebsch.hh | 8 +- .../include/G4CollisionComposite.hh | 4 +- .../include/G4CollisionInitialState.hh | 2 +- .../include/G4CollisionMesonBaryon.hh | 8 +- .../include/G4CollisionMesonBaryonElastic.hh | 8 +- .../G4CollisionMesonBaryonToResonance.hh | 8 +- .../scattering/include/G4CollisionNN.hh | 10 +- .../include/G4CollisionNNElastic.hh | 10 +- .../include/G4CollisionNNToDeltaDelta.hh | 8 +- .../include/G4CollisionNNToDeltaDelta1600.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1620.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1700.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1900.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1905.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1910.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1920.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1930.hh | 6 +- .../include/G4CollisionNNToDeltaDelta1950.hh | 6 +- .../include/G4CollisionNNToDeltaDeltastar.hh | 8 +- .../include/G4CollisionNNToDeltaNstar.hh | 8 +- .../include/G4CollisionNNToNDelta.hh | 6 +- .../include/G4CollisionNNToNDelta1600.hh | 6 +- .../include/G4CollisionNNToNDelta1620.hh | 6 +- .../include/G4CollisionNNToNDelta1700.hh | 6 +- .../include/G4CollisionNNToNDelta1900.hh | 6 +- .../include/G4CollisionNNToNDelta1905.hh | 6 +- .../include/G4CollisionNNToNDelta1910.hh | 6 +- .../include/G4CollisionNNToNDelta1920.hh | 6 +- .../include/G4CollisionNNToNDelta1930.hh | 6 +- .../include/G4CollisionNNToNDelta1950.hh | 6 +- .../include/G4CollisionNNToNDeltastar.hh | 8 +- .../include/G4CollisionNNToNNstar.hh | 8 +- .../include/G4CollisionNStarNToNN.hh | 8 +- .../scattering/include/G4CollisionPN.hh | 10 +- .../scattering/include/G4CollisionPtr.hh | 2 +- .../scattering/include/G4CollisionVector.hh | 6 +- .../include/G4CollisionnpElastic.hh | 10 +- .../G4ConcreteMesonBaryonToResonance.hh | 14 +- .../include/G4ConcreteNNToDeltaDelta.hh | 2 +- .../include/G4ConcreteNNToDeltaDeltastar.hh | 2 +- .../include/G4ConcreteNNToDeltaNstar.hh | 2 +- .../include/G4ConcreteNNToNDelta.hh | 2 +- .../include/G4ConcreteNNToNDeltaStar.hh | 2 +- .../include/G4ConcreteNNToNNStar.hh | 2 +- .../include/G4ConcreteNNTwoBodyResonance.hh | 10 +- .../include/G4ConcreteNStarNToNN.hh | 2 +- .../include/G4CrossSectionBuffer.hh | 4 +- .../include/G4CrossSectionSourcePtr.hh | 2 +- .../include/G4CrossSectionVector.hh | 4 +- .../scattering/include/G4ListOfCollisions.hh | 8 +- .../scattering/include/G4LowEXsection.hh | 4 +- .../scattering/include/G4PartialWidthTable.hh | 10 +- .../include/G4ParticleTypeConverter.hh | 6 +- .../scattering/include/G4ResonanceNames.hh | 32 +- .../include/G4ResonancePartialWidth.hh | 2 +- .../scattering/include/G4ResonanceWidth.hh | 2 +- .../scattering/include/G4Scatterer.hh | 4 +- .../scattering/include/G4VCollision.hh | 4 +- .../scattering/include/G4VScatterer.hh | 4 +- .../include/G4VScatteringCollision.hh | 4 +- .../include/G4XAnnihilationChannel.hh | 2 +- .../include/G4XDeltaDeltastarTable.hh | 4 +- .../scattering/include/G4XDeltaNstarTable.hh | 4 +- .../scattering/include/G4XNDeltastarTable.hh | 4 +- .../scattering/include/G4XNNElasticLowE.hh | 4 +- .../scattering/include/G4XNNTotalLowE.hh | 6 +- .../scattering/include/G4XNNstarTable.hh | 4 +- .../scattering/include/G4XPDGElastic.hh | 12 +- .../scattering/include/G4XPDGTotal.hh | 12 +- .../scattering/include/G4XpimNTotal.hh | 4 +- .../scattering/include/G4XpipNTotal.hh | 4 +- .../scattering/src/G4BaryonPartialWidth.cc | 2 +- .../generator/scattering/src/G4BaryonWidth.cc | 2 +- .../generator/scattering/src/G4Clebsch.cc | 42 +- .../scattering/src/G4CollisionComposite.cc | 4 +- .../scattering/src/G4CollisionManager.cc | 14 +- .../src/G4CollisionMesonBaryonElastic.cc | 6 +- .../generator/scattering/src/G4CollisionNN.cc | 4 +- .../scattering/src/G4CollisionNNElastic.cc | 4 +- .../generator/scattering/src/G4CollisionPN.cc | 4 +- .../scattering/src/G4CollisionnpElastic.cc | 2 +- .../src/G4ConcreteMesonBaryonToResonance.cc | 34 +- .../scattering/src/G4ParticleTypeConverter.cc | 276 +- .../generator/scattering/src/G4Scatterer.cc | 4 +- .../scattering/src/G4VCrossSectionSource.cc | 4 +- .../scattering/src/G4VScatteringCollision.cc | 4 +- .../generator/scattering/src/G4VXResonance.cc | 4 +- .../scattering/src/G4XDeltaDeltastarTable.cc | 2 +- .../scattering/src/G4XDeltaNstarTable.cc | 2 +- .../scattering/src/G4XNDeltastarTable.cc | 2 +- .../scattering/src/G4XNNElasticLowE.cc | 4 +- .../scattering/src/G4XNNstarTable.cc | 2 +- .../generator/scattering/src/G4XPDGElastic.cc | 44 +- .../generator/scattering/src/G4XPDGTotal.cc | 48 +- .../generator/string_common/GNUmakefile | 4 +- .../string_common/include/G4EventGenerator.hh | 2 +- .../include/G4InteractionCode.hh | 2 +- .../include/G4InteractionContent.hh | 2 +- .../include/G4PomeronCrossSection.hh | 2 +- .../string_common/include/G4StringModel.hh | 2 +- .../string_common/include/G4VParticipants.hh | 2 +- .../include/G4VPartonStringModel.hh | 2 +- .../include/G4VSplitableHadron.hh | 6 +- .../include/G4VStringFragmentation.hh | 2 +- .../string_common/include/G4VertexCode.hh | 2 +- .../src/G4DiffractiveExcitation.cc | 12 +- .../string_common/src/G4EventGenerator.cc | 12 +- .../string_common/src/G4InteractionContent.cc | 8 +- .../src/G4PomeronCrossSection.cc | 28 +- .../src/G4SingleDiffractiveExcitation.cc | 12 +- .../string_common/src/G4StringModel.cc | 12 +- .../string_common/src/G4VParticipants.cc | 2 +- .../string_common/src/G4VPartonStringModel.cc | 14 +- .../string_common/src/G4VSplitableHadron.cc | 6 +- .../src/G4VStringFragmentation.cc | 12 +- .../string_fragmentation/GNUmakefile | 4 +- .../include/G4ExcitedStringDecay.hh | 2 +- .../include/G4FragmentingString.hh | 2 +- .../include/G4HadronBuilder.hh | 14 +- .../include/G4LundStringFragmentation.hh | 2 +- .../include/G4QGSMFragmentation.hh | 2 +- .../include/G4VKinkyStringDecay.hh | 2 +- .../include/G4VLongitudinalStringDecay.hh | 14 +- .../src/G4ExcitedStringDecay.cc | 8 +- .../src/G4HadronBuilder.cc | 18 +- .../src/G4LundStringFragmentation.cc | 10 +- .../src/G4QGSMFragmentation.cc | 10 +- .../src/G4VKinkyStringDecay.cc | 2 +- .../src/G4VLongitudinalStringDecay.cc | 28 +- .../models/generator/util/GNUmakefile | 4 +- .../util/include/G4DecayStrongResonances.hh | 6 +- .../generator/util/include/G4ExcitedString.hh | 8 +- .../util/include/G4ExcitedStringVector.hh | 8 +- .../util/include/G4Fancy3DNucleus.hh | 10 +- .../generator/util/include/G4FermiMomentum.hh | 2 +- .../generator/util/include/G4Fragment.hh | 16 +- .../util/include/G4FragmentVector.hh | 2 +- .../util/include/G4GeneralPhaseSpaceDecay.hh | 2 +- .../generator/util/include/G4KineticTrack.hh | 92 +- .../util/include/G4KineticTrackVector.hh | 8 +- .../util/include/G4NuclearFermiDensity.hh | 2 +- .../include/G4NuclearShellModelDensity.hh | 2 +- .../generator/util/include/G4Nucleon.hh | 11 +- .../models/generator/util/include/G4Parton.hh | 6 +- .../generator/util/include/G4PartonVector.hh | 8 +- .../util/include/G4SampleResonance.hh | 10 +- .../generator/util/src/G4ExcitedString.cc | 8 +- .../generator/util/src/G4Fancy3DNucleus.cc | 16 +- .../generator/util/src/G4FermiMomentum.cc | 2 +- .../models/generator/util/src/G4Fragment.cc | 30 +- .../util/src/G4GeneralPhaseSpaceDecay.cc | 2 +- .../generator/util/src/G4KineticTrack.cc | 78 +- .../util/src/G4NuclearFermiDensity.cc | 6 +- .../util/src/G4NuclearShellModelDensity.cc | 6 +- .../models/generator/util/src/G4Nucleon.cc | 10 +- .../models/generator/util/src/G4Parton.cc | 2 +- .../generator/util/src/G4SampleResonance.cc | 8 +- .../hadronic/models/high_energy/GNUmakefile | 4 +- .../include/G4HEAntiKaonZeroInelastic.hh | 2 +- .../include/G4HEAntiLambdaInelastic.hh | 2 +- .../include/G4HEAntiNeutronInelastic.hh | 2 +- .../include/G4HEAntiOmegaMinusInelastic.hh | 2 +- .../include/G4HEAntiProtonInelastic.hh | 2 +- .../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 | 2 +- .../include/G4HEOmegaMinusInelastic.hh | 2 +- .../include/G4HEPionMinusInelastic.hh | 2 +- .../include/G4HEPionPlusInelastic.hh | 2 +- .../models/high_energy/include/G4HEPlot.hh | 2 +- .../include/G4HEProtonInelastic.hh | 2 +- .../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 | 20 +- .../src/G4HEAntiLambdaInelastic.cc | 30 +- .../src/G4HEAntiNeutronInelastic.cc | 30 +- .../src/G4HEAntiOmegaMinusInelastic.cc | 30 +- .../src/G4HEAntiProtonInelastic.cc | 2 +- .../src/G4HEAntiSigmaMinusInelastic.cc | 30 +- .../src/G4HEAntiSigmaPlusInelastic.cc | 24 +- .../src/G4HEAntiSigmaZeroInelastic.cc | 2 +- .../src/G4HEAntiXiMinusInelastic.cc | 30 +- .../src/G4HEAntiXiZeroInelastic.cc | 30 +- .../models/high_energy/src/G4HEInelastic.cc | 6 +- .../high_energy/src/G4HEKaonMinusInelastic.cc | 2 +- .../high_energy/src/G4HEKaonPlusInelastic.cc | 2 +- .../high_energy/src/G4HEKaonZeroInelastic.cc | 16 +- .../src/G4HEKaonZeroLongInelastic.cc | 2 +- .../src/G4HEKaonZeroShortInelastic.cc | 2 +- .../high_energy/src/G4HELambdaInelastic.cc | 20 +- .../high_energy/src/G4HENeutronInelastic.cc | 16 +- .../src/G4HEOmegaMinusInelastic.cc | 16 +- .../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 | 16 +- .../high_energy/src/G4HESigmaPlusInelastic.cc | 20 +- .../high_energy/src/G4HESigmaZeroInelastic.cc | 2 +- .../models/high_energy/src/G4HEVector.cc | 2 +- .../high_energy/src/G4HEXiMinusInelastic.cc | 16 +- .../high_energy/src/G4HEXiZeroInelastic.cc | 20 +- .../models/isotope_production/GNUmakefile | 4 +- .../include/G4IsoProdCrossSections.hh | 2 +- .../src/G4IsoProdCrossSection.cc | 2 +- .../src/G4NeutronIsoIsoCrossSections.cc | 10 +- .../src/G4NeutronIsotopeProduction.cc | 2 +- .../leading_particle/include/G4Mars5GeV.hh | 2 +- .../models/leading_particle/src/G4Mars5GeV.cc | 8 +- .../models/low_energy/include/G4LCapture.hh | 2 +- .../low_energy/include/G4LEAlphaInelastic.hh | 2 +- .../include/G4LEAntiKaonZeroInelastic.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/G4LEKaonZeroInelastic.hh | 2 +- .../include/G4LEKaonZeroLInelastic.hh | 2 +- .../include/G4LEKaonZeroSInelastic.hh | 2 +- .../low_energy/include/G4LELambdaInelastic.hh | 2 +- .../include/G4LEOmegaMinusInelastic.hh | 2 +- .../include/G4LEPionMinusInelastic.hh | 2 +- .../include/G4LEPionPlusInelastic.hh | 2 +- .../low_energy/include/G4LEProtonInelastic.hh | 2 +- .../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 +- .../src/G4LEAntiKaonZeroInelastic.cc | 20 +- .../low_energy/src/G4LEAntiLambdaInelastic.cc | 26 +- .../src/G4LEAntiNeutronInelastic.cc | 28 +- .../src/G4LEAntiOmegaMinusInelastic.cc | 14 +- .../low_energy/src/G4LEAntiProtonInelastic.cc | 26 +- .../src/G4LEAntiSigmaMinusInelastic.cc | 26 +- .../src/G4LEAntiSigmaPlusInelastic.cc | 22 +- .../src/G4LEAntiXiMinusInelastic.cc | 14 +- .../low_energy/src/G4LEAntiXiZeroInelastic.cc | 18 +- .../low_energy/src/G4LEKaonMinusInelastic.cc | 16 +- .../low_energy/src/G4LEKaonPlusInelastic.cc | 22 +- .../low_energy/src/G4LEKaonZeroInelastic.cc | 24 +- .../low_energy/src/G4LELambdaInelastic.cc | 20 +- .../low_energy/src/G4LENeutronInelastic.cc | 16 +- .../low_energy/src/G4LEOmegaMinusInelastic.cc | 12 +- .../low_energy/src/G4LEPionMinusInelastic.cc | 18 +- .../low_energy/src/G4LEPionPlusInelastic.cc | 24 +- .../low_energy/src/G4LEProtonInelastic.cc | 18 +- .../low_energy/src/G4LESigmaMinusInelastic.cc | 16 +- .../low_energy/src/G4LESigmaPlusInelastic.cc | 16 +- .../low_energy/src/G4LEXiMinusInelastic.cc | 12 +- .../low_energy/src/G4LEXiZeroInelastic.cc | 16 +- .../models/low_energy/src/G4LElastic.cc | 92 +- .../models/low_energy/src/G4LFission.cc | 2 +- .../hadronic/models/neutron_hp/GNUmakefile | 4 +- .../include/G4InterpolationIterator.hh | 2 +- .../include/G4InterpolationManager.hh | 8 +- .../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 | 8 +- .../neutron_hp/include/G4NeutronHPAngularP.hh | 6 +- .../include/G4NeutronHPArbitaryTab.hh | 8 +- .../neutron_hp/include/G4NeutronHPCapture.hh | 2 +- .../include/G4NeutronHPCaptureData.hh | 2 +- .../include/G4NeutronHPCaptureFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPChannel.hh | 2 +- .../include/G4NeutronHPChannelList.hh | 6 +- .../include/G4NeutronHPContAngularPar.hh | 8 +- .../include/G4NeutronHPContEnergyAngular.hh | 8 +- .../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 | 8 +- .../include/G4NeutronHPDiscreteTwoBody.hh | 8 +- .../neutron_hp/include/G4NeutronHPElastic.hh | 2 +- .../include/G4NeutronHPElasticData.hh | 2 +- .../include/G4NeutronHPElasticFS.hh | 2 +- .../include/G4NeutronHPElementData.hh | 12 +- .../include/G4NeutronHPEnAngCorrelation.hh | 8 +- .../include/G4NeutronHPEnergyDistribution.hh | 8 +- .../include/G4NeutronHPEvapSpectrum.hh | 8 +- .../include/G4NeutronHPFCFissionFS.hh | 6 +- .../include/G4NeutronHPFSFissionFS.hh | 6 +- .../include/G4NeutronHPFastLegendre.hh | 2 +- .../neutron_hp/include/G4NeutronHPField.hh | 2 +- .../include/G4NeutronHPFieldPoint.hh | 2 +- .../include/G4NeutronHPFinalState.hh | 8 +- .../neutron_hp/include/G4NeutronHPFission.hh | 2 +- .../include/G4NeutronHPFissionBaseFS.hh | 8 +- .../include/G4NeutronHPFissionData.hh | 2 +- .../include/G4NeutronHPFissionERelease.hh | 8 +- .../include/G4NeutronHPFissionFS.hh | 2 +- .../include/G4NeutronHPFissionSpectrum.hh | 8 +- .../neutron_hp/include/G4NeutronHPGamma.hh | 8 +- .../neutron_hp/include/G4NeutronHPHash.hh | 6 +- .../include/G4NeutronHPHe3InelasticFS.hh | 2 +- .../include/G4NeutronHPInelastic.hh | 2 +- .../include/G4NeutronHPInelasticBaseFS.hh | 6 +- .../include/G4NeutronHPInelasticCompFS.hh | 6 +- .../include/G4NeutronHPInelasticData.hh | 2 +- .../include/G4NeutronHPInterpolator.hh | 8 +- .../neutron_hp/include/G4NeutronHPIsoData.hh | 10 +- .../include/G4NeutronHPIsotropic.hh | 8 +- .../include/G4NeutronHPKallbachMannSyst.hh | 2 +- .../include/G4NeutronHPLCFissionFS.hh | 6 +- .../include/G4NeutronHPLabAngularEnergy.hh | 8 +- .../include/G4NeutronHPLegendreStore.hh | 8 +- .../include/G4NeutronHPLegendreTable.hh | 8 +- .../neutron_hp/include/G4NeutronHPLevel.hh | 6 +- .../neutron_hp/include/G4NeutronHPList.hh | 6 +- .../include/G4NeutronHPMadlandNixSpectrum.hh | 8 +- .../include/G4NeutronHPN2AInelasticFS.hh | 2 +- .../include/G4NeutronHPN2PInelasticFS.hh | 2 +- .../include/G4NeutronHPN3AInelasticFS.hh | 2 +- .../include/G4NeutronHPNAInelasticFS.hh | 2 +- .../include/G4NeutronHPNBodyPhaseSpace.hh | 8 +- .../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 | 8 +- .../include/G4NeutronHPNeutronYield.hh | 10 +- .../include/G4NeutronHPPAInelasticFS.hh | 2 +- .../include/G4NeutronHPPDInelasticFS.hh | 2 +- .../include/G4NeutronHPPInelasticFS.hh | 2 +- .../include/G4NeutronHPPTInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPPartial.hh | 14 +- .../include/G4NeutronHPPhotonDist.hh | 14 +- .../include/G4NeutronHPPhotonXSection.hh | 8 +- .../include/G4NeutronHPPolynomExpansion.hh | 8 +- .../neutron_hp/include/G4NeutronHPProduct.hh | 8 +- .../include/G4NeutronHPSCFissionFS.hh | 6 +- .../include/G4NeutronHPSimpleEvapSpectrum.hh | 8 +- .../include/G4NeutronHPT2AInelasticFS.hh | 2 +- .../include/G4NeutronHPTCFissionFS.hh | 6 +- .../include/G4NeutronHPTInelasticFS.hh | 2 +- .../neutron_hp/include/G4NeutronHPVector.hh | 22 +- .../include/G4NeutronHPWattSpectrum.hh | 8 +- .../neutron_hp/include/G4VNeutronHPEDis.hh | 8 +- .../include/G4VNeutronHPEnergyAngular.hh | 8 +- .../neutron_hp/src/G4NeutronHPAngular.cc | 2 +- .../neutron_hp/src/G4NeutronHPCapture.cc | 4 +- .../neutron_hp/src/G4NeutronHPCaptureData.cc | 4 +- .../neutron_hp/src/G4NeutronHPCaptureFS.cc | 4 +- .../neutron_hp/src/G4NeutronHPChannel.cc | 6 +- .../neutron_hp/src/G4NeutronHPChannelList.cc | 2 +- .../src/G4NeutronHPContAngularPar.cc | 6 +- .../src/G4NeutronHPContEnergyAngular.cc | 2 +- .../neutron_hp/src/G4NeutronHPDeExGammas.cc | 2 +- .../src/G4NeutronHPDiscreteTwoBody.cc | 2 +- .../neutron_hp/src/G4NeutronHPElastic.cc | 2 +- .../neutron_hp/src/G4NeutronHPElasticData.cc | 4 +- .../neutron_hp/src/G4NeutronHPElasticFS.cc | 4 +- .../neutron_hp/src/G4NeutronHPElementData.cc | 2 +- .../neutron_hp/src/G4NeutronHPFCFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPFSFissionFS.cc | 9 +- .../neutron_hp/src/G4NeutronHPFission.cc | 2 +- .../src/G4NeutronHPFissionBaseFS.cc | 6 +- .../neutron_hp/src/G4NeutronHPFissionData.cc | 4 +- .../models/neutron_hp/src/G4NeutronHPGamma.cc | 2 +- .../neutron_hp/src/G4NeutronHPInelastic.cc | 6 +- .../src/G4NeutronHPInelasticBaseFS.cc | 20 +- .../src/G4NeutronHPInelasticCompFS.cc | 22 +- .../src/G4NeutronHPInelasticData.cc | 4 +- .../neutron_hp/src/G4NeutronHPIsoData.cc | 6 +- .../neutron_hp/src/G4NeutronHPIsotropic.cc | 6 +- .../src/G4NeutronHPKallbachMannSyst.cc | 10 +- .../neutron_hp/src/G4NeutronHPLCFissionFS.cc | 2 +- .../src/G4NeutronHPLabAngularEnergy.cc | 4 +- .../src/G4NeutronHPLegendreStore.cc | 14 +- .../models/neutron_hp/src/G4NeutronHPList.cc | 4 +- .../src/G4NeutronHPNBodyPhaseSpace.cc | 6 +- .../neutron_hp/src/G4NeutronHPNInelasticFS.cc | 4 +- .../models/neutron_hp/src/G4NeutronHPNames.cc | 16 +- .../neutron_hp/src/G4NeutronHPPartial.cc | 2 +- .../neutron_hp/src/G4NeutronHPPhotonDist.cc | 8 +- .../neutron_hp/src/G4NeutronHPSCFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPTCFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPVector.cc | 6 +- .../hadronic/models/radiative_decay/History | 12 +- .../include/G4ITDecayChannel.hh | 4 +- .../include/G4NuclearDecayChannel.hh | 2 +- .../include/G4NucleusLimits.hh | 4 +- .../include/G4RIsotopeTable.hh | 6 +- .../include/G4RadioactiveDecay.hh | 14 +- .../include/G4RadioactiveDecayMode.hh | 2 +- .../include/G4RadioactiveDecayRate.hh | 14 +- .../include/G4RadioactiveDecayRateVector.hh | 4 +- .../src/G4NuclearDecayChannel.cc | 2 +- .../radiative_decay/src/G4NucleusLimits.cc | 2 +- .../radiative_decay/src/G4RIsotopeTable.cc | 20 +- .../radiative_decay/src/G4RadioactiveDecay.cc | 60 +- .../src/G4RadioactiveDecayMode.cc | 2 +- .../src/G4RadioactiveDecaymessenger.cc | 8 +- .../src/G4UIcmdWithNucleusLimits.cc | 6 +- .../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/G4HadronCaptureProcess.hh | 9 +- .../include/G4HadronElasticProcess.hh | 9 +- .../include/G4HadronFissionProcess.hh | 9 +- .../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 | 8 +- .../include/G4AntiProtonAnnihilationAtRest.hh | 8 +- .../include/G4DistributionGenerator.hh | 14 +- .../stopping/include/G4KaonMinusAbsorption.hh | 8 +- .../include/G4KaonMinusAbsorptionAtRest.hh | 6 +- .../include/G4MuMinusCaptureCascade.hh | 2 +- .../include/G4MuonMinusCaptureAtRest.hh | 2 +- .../include/G4NeutronCaptureAtRest.hh | 8 +- .../include/G4PiMinusAbsorptionAtRest.hh | 6 +- .../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/G4PiMinusStopMaterial.hh | 10 +- .../stopping/include/G4PiMinusStopN.hh | 2 +- .../stopping/include/G4PiMinusStopO.hh | 2 +- .../stopping/include/G4PiMinusStopPb.hh | 2 +- .../stopping/include/G4PiMinusStopTa.hh | 2 +- .../include/G4PionMinusAbsorptionAtRest.hh | 8 +- .../stopping/include/G4StopDeexcitation.hh | 2 +- .../include/G4StopDeexcitationAlgorithm.hh | 2 +- .../include/G4StopDummyDeexcitation.hh | 2 +- .../stopping/include/G4StopElementSelector.hh | 2 +- .../include/G4StopTheoDeexcitation.hh | 2 +- .../src/G4AntiNeutronAnnihilationAtRest.cc | 4 +- .../src/G4AntiProtonAnnihilationAtRest.cc | 8 +- .../stopping/src/G4DistributionGenerator.cc | 8 +- .../stopping/src/G4KaonMinusAbsorption.cc | 8 +- .../src/G4KaonMinusAbsorptionAtRest.cc | 4 +- .../stopping/src/G4MuMinusCaptureCascade.cc | 2 +- .../stopping/src/G4MuonMinusCaptureAtRest.cc | 106 +- .../stopping/src/G4NeutronCaptureAtRest.cc | 8 +- .../stopping/src/G4PiMinusAbsorptionAtRest.cc | 6 +- .../stopping/src/G4PiMinusStopAbsorption.cc | 12 +- .../hadronic/stopping/src/G4PiMinusStopAl.cc | 16 +- .../hadronic/stopping/src/G4PiMinusStopC.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopCo.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopCu.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopLi.cc | 18 +- .../stopping/src/G4PiMinusStopMaterial.cc | 10 +- .../hadronic/stopping/src/G4PiMinusStopN.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopO.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopPb.cc | 18 +- .../hadronic/stopping/src/G4PiMinusStopTa.cc | 18 +- .../src/G4PionMinusAbsorptionAtRest.cc | 8 +- .../stopping/src/G4StopDeexcitation.cc | 6 +- .../stopping/src/G4StopDummyDeexcitation.cc | 10 +- .../stopping/src/G4StopElementSelector.cc | 10 +- .../stopping/src/G4StopTheoDeexcitation.cc | 2 +- source/processes/hadronic/util/GNUmakefile | 6 +- .../hadronic/util/include/G4Delete.hh | 28 + .../util/include/G4DynamicParticleVector.hh | 8 +- .../util/include/G4EffectiveCharge.hh | 4 +- .../util/include/G4GHEKinematicsVector.hh | 22 +- .../hadronic/util/include/G4IsoResult.hh | 2 +- .../hadronic/util/include/G4LightMedia.hh | 6 +- .../hadronic/util/include/G4ParticleVector.hh | 8 +- .../util/include/G4ReactionDynamics.hh | 2 +- .../util/include/G4ReactionKinematics.hh | 2 +- .../util/include/G4ReactionProduct.hh | 2 +- .../util/include/G4ReactionProductVector.hh | 8 +- .../hadronic/util/include/G4StableIsotopes.hh | 2 +- .../processes/hadronic/util/include/G4ping.hh | 69 + .../hadronic/util/src/G4LightMedia.cc | 52 +- .../processes/hadronic/util/src/G4Nucleus.cc | 18 +- .../hadronic/util/src/G4ReactionDynamics.cc | 144 +- .../hadronic/util/src/G4ReactionKinematics.cc | 2 +- .../hadronic/util/src/G4ReactionProduct.cc | 2 +- .../hadronic/util/src/G4StableIsotopes.cc | 2 +- .../include/G4IVContinuousDiscreteProcess.hh | 2 +- .../include/G4IVRestDiscreteProcess.hh | 2 +- .../management/include/G4ParticleTypes.hh | 2 +- .../management/include/G4ProcTblElement.hh | 8 +- .../management/include/G4ProcTblElement.icc | 2 +- .../management/include/G4ProcessAttribute.hh | 2 +- .../management/include/G4ProcessManager.hh | 8 +- .../management/include/G4ProcessManager.icc | 2 +- .../include/G4ProcessManagerMessenger.hh | 2 +- .../management/include/G4ProcessTable.hh | 10 +- .../management/include/G4ProcessTable.icc | 2 +- .../include/G4ProcessTableMessenger.hh | 2 +- .../management/include/G4ProcessType.hh | 2 +- .../management/include/G4ProcessVector.hh | 8 +- .../management/include/G4ProcessVector.icc | 2 +- .../include/G4VContinuousDiscreteProcess.hh | 2 +- .../include/G4VContinuousProcess.hh | 2 +- .../management/include/G4VDiscreteProcess.hh | 2 +- .../management/include/G4VProcess.hh | 2 +- .../G4VRestContinuousDiscreteProcess.hh | 2 +- .../include/G4VRestContinuousProcess.hh | 2 +- .../include/G4VRestDiscreteProcess.hh | 2 +- .../management/include/G4VRestProcess.hh | 2 +- .../management/include/G4WrapperProcess.hh | 2 +- .../src/G4IVContinuousDiscreteProcess.cc | 2 +- .../management/src/G4IVRestDiscreteProcess.cc | 2 +- .../management/src/G4ProcTblElement.cc | 2 +- .../management/src/G4ProcessAttribute.cc | 2 +- .../management/src/G4ProcessManager.cc | 14 +- .../src/G4ProcessManagerMessenger.cc | 12 +- .../management/src/G4ProcessTable.cc | 2 +- .../management/src/G4ProcessTableMessenger.cc | 14 +- .../management/src/G4ProcessVector.cc | 2 +- .../src/G4VContinuousDiscreteProcess.cc | 2 +- .../management/src/G4VContinuousProcess.cc | 2 +- .../management/src/G4VDiscreteProcess.cc | 2 +- source/processes/management/src/G4VProcess.cc | 2 +- .../src/G4VRestContinuousDiscreteProcess.cc | 2 +- .../src/G4VRestContinuousProcess.cc | 2 +- .../management/src/G4VRestDiscreteProcess.cc | 2 +- .../management/src/G4VRestProcess.cc | 2 +- .../optical/include/G4OpAbsorption.hh | 2 +- .../optical/include/G4OpBoundaryProcess.hh | 2 +- .../processes/optical/include/G4OpRayleigh.hh | 2 +- .../processes/optical/src/G4OpAbsorption.cc | 2 +- .../optical/src/G4OpBoundaryProcess.cc | 2 +- source/processes/optical/src/G4OpRayleigh.cc | 2 +- source/processes/parameterisation/History | 6 +- .../include/G4FastSimulationManager.hh | 2 +- .../include/G4FastSimulationManagerProcess.hh | 2 +- .../include/G4FastSimulationMessenger.hh | 2 +- .../include/G4FastSimulationVector.hh | 6 +- .../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 | 8 +- .../src/G4FastSimulationManager.cc | 2 +- .../src/G4FastSimulationManagerProcess.cc | 12 +- .../src/G4FastSimulationMessenger.cc | 2 +- .../parameterisation/src/G4FastStep.cc | 41 +- .../parameterisation/src/G4FastTrack.cc | 2 +- .../src/G4GlobalFastSimulationManager.cc | 2 +- .../src/G4VFastSimulationModel.cc | 2 +- source/processes/photolepton_hadron/History | 5 +- .../include/G4LeptonHadronInteractionModel.hh | 8 +- .../include/G4MuNuclearInteraction.hh | 2 +- .../include/G4MuNuclearInteraction.icc | 6 +- .../src/G4LeptonHadronProcess.cc | 2 +- .../src/G4MuNuclearInteraction.cc | 6 +- .../src/G4MuonNucleusInteractionModel.cc | 2 +- .../src/G4MuonNucleusProcess.cc | 4 +- .../src/G4ParametrizedHadronicVertex.cc | 2 +- source/processes/transportation/History | 46 +- .../include/G4ImportancePostStepDoIt.hh | 2 +- .../include/G4MImportanceConfigurator.hh | 2 +- .../include/G4MScoreConfigurator.hh | 2 +- .../transportation/include/G4MScoreProcess.hh | 2 +- .../include/G4MassGCellFinder.hh | 2 +- .../include/G4MassGeometrySampler.hh | 4 +- .../include/G4MassImportanceProcess.hh | 12 +- .../include/G4PImportanceConfigurator.hh | 2 +- .../include/G4PScoreConfigurator.hh | 2 +- .../transportation/include/G4PScoreProcess.hh | 2 +- .../include/G4ParallelGCellFinder.hh | 2 +- .../include/G4ParallelGeometrySampler.hh | 4 +- .../include/G4ParallelImportanceProcess.hh | 10 +- .../include/G4ParallelTransport.hh | 6 +- .../G4ParallelTransportConfigurator.hh | 2 +- .../transportation/include/G4ProcessPlacer.hh | 2 +- .../include/G4TrackTerminator.hh | 2 +- .../include/G4Transportation.hh | 2 +- .../include/G4Transportation.icc | 2 +- .../include/G4UserSpecialCuts.hh | 2 +- .../include/G4VProcessPlacer.hh | 2 +- .../transportation/include/G4VSampler.hh | 4 +- .../include/G4VSamplerConfigurator.hh | 8 +- .../include/G4VTrackTerminator.hh | 2 +- .../include/G4WeightCutOffConfigurator.hh | 2 +- .../include/G4WeightCutOffProcess.hh | 2 +- .../src/G4ImportancePostStepDoIt.cc | 8 +- .../src/G4MImportanceConfigurator.cc | 2 +- .../src/G4MScoreConfigurator.cc | 2 +- .../transportation/src/G4MScoreProcess.cc | 2 +- .../transportation/src/G4MassGCellFinder.cc | 2 +- .../src/G4MassGeometrySampler.cc | 2 +- .../src/G4MassImportanceProcess.cc | 18 +- .../src/G4PImportanceConfigurator.cc | 2 +- .../src/G4PScoreConfigurator.cc | 2 +- .../transportation/src/G4PScoreProcess.cc | 2 +- .../src/G4ParallelGCellFinder.cc | 2 +- .../src/G4ParallelGeometrySampler.cc | 2 +- .../src/G4ParallelImportanceProcess.cc | 27 +- .../transportation/src/G4ParallelTransport.cc | 9 +- .../src/G4ParallelTransportConfigurator.cc | 2 +- .../transportation/src/G4ProcessPlacer.cc | 6 +- .../transportation/src/G4Transportation.cc | 30 +- .../transportation/src/G4UserSpecialCuts.cc | 2 +- .../transportation/src/G4VProcessPlacer.cc | 2 +- .../transportation/src/G4VSampler.cc | 2 +- .../src/G4VSamplerConfigurator.cc | 2 +- .../transportation/src/G4VTrackTerminator.cc | 2 +- .../src/G4WeightCutOffConfigurator.cc | 2 +- .../src/G4WeightCutOffProcess.cc | 2 +- source/readout/include/G4DCtable.hh | 10 +- source/readout/include/G4DMmessenger.hh | 2 +- source/readout/include/G4DigiManager.hh | 8 +- source/readout/include/G4VDigitizerModule.hh | 8 +- source/readout/src/G4DCtable.cc | 6 +- source/readout/src/G4DMmessenger.cc | 2 +- source/readout/src/G4DigiManager.cc | 2 +- source/readout/src/G4VDigitizerModule.cc | 2 +- source/run/History | 28 +- source/run/include/G4ExceptionHandler.hh | 2 +- source/run/include/G4Run.hh | 2 +- source/run/include/G4RunManager.hh | 22 +- source/run/include/G4RunMessenger.hh | 2 +- .../run/include/G4UserPhysicsListMessenger.hh | 2 +- source/run/include/G4UserRunAction.hh | 2 +- source/run/include/G4VModularPhysicsList.hh | 8 +- source/run/include/G4VPersistencyManager.hh | 2 +- source/run/include/G4VPhysicsConstructor.hh | 2 +- .../include/G4VUserDetectorConstruction.hh | 2 +- source/run/include/G4VUserPhysicsList.hh | 8 +- .../include/G4VUserPrimaryGeneratorAction.hh | 2 +- source/run/src/G4ExceptionHandler.cc | 12 +- source/run/src/G4Run.cc | 2 +- source/run/src/G4RunManager.cc | 95 +- source/run/src/G4RunMessenger.cc | 8 +- source/run/src/G4UserPhysicsListMessenger.cc | 6 +- source/run/src/G4UserRunAction.cc | 8 +- source/run/src/G4VModularPhysicsList.cc | 2 +- source/run/src/G4VPersistencyManager.cc | 2 +- source/run/src/G4VUserDetectorConstruction.cc | 2 +- source/run/src/G4VUserPhysicsList.cc | 49 +- .../run/src/G4VUserPrimaryGeneratorAction.cc | 2 +- source/track/History | 12 +- 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 | 8 +- .../include/G4ParticleChangeForTransport.hh | 10 +- .../include/G4ParticleChangeForTransport.icc | 8 +- source/track/include/G4Step.hh | 12 +- source/track/include/G4Step.icc | 2 +- source/track/include/G4StepPoint.hh | 4 +- source/track/include/G4StepPoint.icc | 4 +- source/track/include/G4StepStatus.hh | 2 +- source/track/include/G4SteppingControl.hh | 2 +- source/track/include/G4Track.hh | 2 +- source/track/include/G4Track.icc | 2 +- source/track/include/G4TrackFastVector.hh | 2 +- source/track/include/G4TrackStatus.hh | 2 +- source/track/include/G4VParticleChange.hh | 2 +- source/track/include/G4VParticleChange.icc | 2 +- .../track/include/G4VUserTrackInformation.hh | 12 +- source/track/src/G4ParticleChange.cc | 34 +- source/track/src/G4ParticleChangeForDecay.cc | 6 +- source/track/src/G4ParticleChangeForLoss.cc | 6 +- source/track/src/G4ParticleChangeForMSC.cc | 16 +- .../track/src/G4ParticleChangeForTransport.cc | 6 +- source/track/src/G4Step.cc | 2 +- source/track/src/G4StepPoint.cc | 2 +- source/track/src/G4Track.cc | 9 +- source/track/src/G4VParticleChange.cc | 20 +- source/tracking/History | 8 +- source/tracking/include/G4SmoothTrajectory.hh | 14 +- .../include/G4SmoothTrajectoryPoint.hh | 14 +- source/tracking/include/G4SteppingManager.hh | 16 +- source/tracking/include/G4SteppingVerbose.hh | 2 +- source/tracking/include/G4TrackVector.hh | 8 +- source/tracking/include/G4TrackingManager.hh | 2 +- .../tracking/include/G4TrackingMessenger.hh | 2 +- source/tracking/include/G4Trajectory.hh | 14 +- source/tracking/include/G4TrajectoryPoint.hh | 8 +- .../tracking/include/G4UserSteppingAction.hh | 6 +- .../tracking/include/G4UserTrackingAction.hh | 8 +- source/tracking/include/G4VSteppingVerbose.hh | 12 +- source/tracking/include/G4VTrajectory.hh | 14 +- source/tracking/include/G4VTrajectoryPoint.hh | 14 +- source/tracking/src/G4SmoothTrajectory.cc | 44 +- .../tracking/src/G4SmoothTrajectoryPoint.cc | 31 +- source/tracking/src/G4SteppingManager.cc | 6 +- source/tracking/src/G4SteppingManager2.cc | 2 +- source/tracking/src/G4SteppingVerbose.cc | 380 +- source/tracking/src/G4TrackingManager.cc | 6 +- source/tracking/src/G4TrackingMessenger.cc | 12 +- source/tracking/src/G4Trajectory.cc | 44 +- source/tracking/src/G4TrajectoryPoint.cc | 22 +- source/tracking/src/G4UserSteppingAction.cc | 2 +- source/tracking/src/G4UserTrackingAction.cc | 2 +- source/tracking/src/G4VSteppingVerbose.cc | 2 +- source/tracking/src/G4VTrajectory.cc | 24 +- .../FukuiRenderer/include/G4DAWNFILE.hh | 2 +- .../include/G4DAWNFILESceneHandler.hh | 2 +- .../FukuiRenderer/include/G4DAWNFILEViewer.hh | 6 +- .../FukuiRenderer/include/G4FRClientServer.hh | 2 +- .../FukuiRenderer/include/G4FRConst.hh | 2 +- .../FukuiRenderer/include/G4FRFeatures.hh | 2 +- .../FukuiRenderer/include/G4FRSceneFunc.icc | 6 +- .../FukuiRenderer/include/G4FRofstream.hh | 10 +- .../FukuiRenderer/include/G4FukuiRenderer.hh | 2 +- .../include/G4FukuiRendererSceneHandler.hh | 2 +- .../include/G4FukuiRendererViewer.hh | 2 +- .../FukuiRenderer/src/G4DAWNFILE.cc | 2 +- .../src/G4DAWNFILESceneHandler.cc | 8 +- .../FukuiRenderer/src/G4DAWNFILEViewer.cc | 10 +- .../FukuiRenderer/src/G4FRClientServer.cc | 2 +- .../FukuiRenderer/src/G4FukuiRenderer.cc | 2 +- .../src/G4FukuiRendererSceneHandler.cc | 6 +- .../src/G4FukuiRendererViewer.cc | 2 +- source/visualization/HepRep/History | 14 +- .../visualization/HepRep/include/G4HepRep.hh | 22 - .../HepRep/include/G4HepRepFile.hh | 26 +- .../include/G4HepRepFileSceneHandler.hh | 26 +- .../HepRep/include/G4HepRepFileViewer.hh | 26 +- .../HepRep/include/G4HepRepSceneHandler.hh | 26 +- .../HepRep/include/G4HepRepViewer.hh | 22 - .../HepRep/include/HepRepXMLWriter.hh | 27 +- source/visualization/HepRep/src/G4HepRep.cc | 22 - .../visualization/HepRep/src/G4HepRepFile.cc | 27 +- .../HepRep/src/G4HepRepFileSceneHandler.cc | 55 +- .../HepRep/src/G4HepRepFileViewer.cc | 29 +- .../HepRep/src/G4HepRepSceneHandler.cc | 40 +- .../HepRep/src/G4HepRepViewer.cc | 24 - .../HepRep/src/HepRepXMLWriter.cc | 24 +- .../HepRep/src/IndentPrintWriter.cc | 2 +- .../HepRep/src/StreamerHepRep.cc | 36 +- .../HepRep/src/StreamerHepRepAttribute.cc | 6 +- .../HepRep/src/StreamerHepRepDefinition.cc | 4 +- .../HepRep/src/StreamerHepRepInstance.cc | 12 +- .../HepRep/src/StreamerHepRepInstanceTree.cc | 6 +- .../HepRep/src/StreamerHepRepPoint.cc | 8 +- .../HepRep/src/StreamerHepRepType.cc | 8 +- .../HepRep/src/StreamerHepRepTypeTree.cc | 4 +- .../HepRep/src/XMLHepRepStreamer.cc | 4 +- source/visualization/HepRep/src/XMLWriter.cc | 6 +- source/visualization/History | 19 +- .../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/History | 16 +- .../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 | 13 +- .../OpenGL/include/G4OpenGLSceneHandler.icc | 2 +- .../include/G4OpenGLStoredSceneHandler.hh | 18 +- .../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 | 9 +- .../OpenGL/include/G4OpenGLViewer.hh | 2 +- .../OpenGL/include/G4OpenGLWin32Viewer.hh | 28 +- .../OpenGL/include/G4OpenGLXViewer.hh | 4 +- .../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 | 10 +- .../OpenGL/src/G4OpenGLImmediateViewer.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateWin32.cc | 2 +- .../src/G4OpenGLImmediateWin32Viewer.cc | 6 +- .../OpenGL/src/G4OpenGLImmediateX.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateXViewer.cc | 19 +- .../OpenGL/src/G4OpenGLImmediateXm.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateXmViewer.cc | 20 +- .../OpenGL/src/G4OpenGLSceneHandler.cc | 7 +- .../OpenGL/src/G4OpenGLStoredSceneHandler.cc | 6 +- .../OpenGL/src/G4OpenGLStoredViewer.cc | 6 +- .../OpenGL/src/G4OpenGLStoredWin32.cc | 11 +- .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc | 6 +- .../OpenGL/src/G4OpenGLStoredX.cc | 2 +- .../OpenGL/src/G4OpenGLStoredXViewer.cc | 19 +- .../OpenGL/src/G4OpenGLStoredXm.cc | 2 +- .../OpenGL/src/G4OpenGLStoredXmViewer.cc | 18 +- .../OpenGL/src/G4OpenGLTransform3D.cc | 6 +- .../OpenGL/src/G4OpenGLViewer.cc | 19 +- .../OpenGL/src/G4OpenGLWin32Viewer.cc | 278 +- .../OpenGL/src/G4OpenGLXViewer.cc | 2 +- .../visualization/OpenGL/src/G4OpenGLXmBox.cc | 2 +- .../src/G4OpenGLXmConvenienceRoutines.cc | 2 +- .../OpenGL/src/G4OpenGLXmFourArrowButtons.cc | 2 +- .../OpenGL/src/G4OpenGLXmFramedBox.cc | 2 +- .../src/G4OpenGLXmMainMenubarCallbacks.cc | 36 +- .../OpenGL/src/G4OpenGLXmPanningCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmPushButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRadioButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRotationCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmSeparator.cc | 2 +- .../OpenGL/src/G4OpenGLXmSliderBar.cc | 2 +- .../OpenGL/src/G4OpenGLXmStyleCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmTextField.cc | 2 +- .../OpenGL/src/G4OpenGLXmTopLevelShell.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetComponent.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetContainer.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetObject.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetShell.cc | 2 +- .../OpenGL/src/G4OpenGLXmViewer.cc | 2 +- .../src/G4OpenGLXmWindowHandlingCallbacks.cc | 2 +- .../OpenInventor/include/G4OpenInventor.hh | 2 +- .../include/G4OpenInventorSceneHandler.hh | 10 +- .../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 +- source/visualization/README.built_in_commands | 18 +- source/visualization/RayTracer/History | 9 +- .../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 | 6 +- .../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 | 12 +- .../RayTracer/include/G4RayTrajectoryPoint.hh | 2 +- .../RayTracer/include/G4VFigureFileMaker.hh | 2 +- .../RayTracer/src/G4RTJpegCoder.cc | 2 +- .../RayTracer/src/G4RTJpegMaker.cc | 24 +- .../RayTracer/src/G4RTMessenger.cc | 2 +- .../RayTracer/src/G4RTOutBitStream.cc | 2 +- .../RayTracer/src/G4RTSteppingAction.cc | 2 +- .../RayTracer/src/G4RTTrackingAction.cc | 6 +- .../RayTracer/src/G4RayShooter.cc | 2 +- .../RayTracer/src/G4RayTracer.cc | 2 +- .../RayTracer/src/G4RayTracerSceneHandler.cc | 2 +- .../RayTracer/src/G4RayTracerViewer.cc | 10 +- .../RayTracer/src/G4RayTrajectory.cc | 11 +- .../RayTracer/src/G4RayTrajectoryPoint.cc | 2 +- source/visualization/Tree/History | 7 +- .../visualization/Tree/include/G4ASCIITree.hh | 2 +- .../Tree/include/G4ASCIITreeMessenger.hh | 2 +- .../Tree/include/G4ASCIITreeSceneHandler.hh | 14 +- .../Tree/include/G4ASCIITreeViewer.hh | 2 +- .../Tree/include/G4GAGTreeList.hh | 4 +- .../Tree/include/G4GAGTreeSceneHandler.hh | 10 +- source/visualization/Tree/include/G4VTree.hh | 2 +- .../Tree/include/G4VTreeSceneHandler.hh | 6 +- .../Tree/include/G4VTreeSceneHandler.icc | 2 +- .../Tree/include/G4VTreeViewer.hh | 2 +- source/visualization/Tree/src/G4ASCIITree.cc | 2 +- .../Tree/src/G4ASCIITreeMessenger.cc | 10 +- .../Tree/src/G4ASCIITreeSceneHandler.cc | 6 +- .../Tree/src/G4ASCIITreeViewer.cc | 6 +- .../Tree/src/G4GAGTreeMessenger.cc | 6 +- .../Tree/src/G4GAGTreeSceneHandler.cc | 7 +- .../visualization/Tree/src/G4GAGTreeViewer.cc | 2 +- source/visualization/Tree/src/G4VTree.cc | 2 +- .../Tree/src/G4VTreeSceneHandler.cc | 2 +- .../visualization/Tree/src/G4VTreeViewer.cc | 6 +- .../visualization/VRML/g4vrmlview/g4mini.java | 2 +- .../VRML/g4vrmlview/g4vrmlview.java | 2 +- source/visualization/VRML/include/FRClient.h | 2 +- .../visualization/VRML/include/G4FRClient.hh | 2 +- source/visualization/VRML/include/G4VRML1.hh | 2 +- .../visualization/VRML/include/G4VRML1File.hh | 2 +- .../VRML/include/G4VRML1FileSceneHandler.hh | 8 +- .../VRML/include/G4VRML1FileViewer.hh | 2 +- .../VRML/include/G4VRML1SceneHandler.hh | 2 +- .../VRML/include/G4VRML1Viewer.hh | 2 +- source/visualization/VRML/include/G4VRML2.hh | 2 +- .../visualization/VRML/include/G4VRML2File.hh | 2 +- .../VRML/include/G4VRML2FileSceneHandler.hh | 8 +- .../VRML/include/G4VRML2FileViewer.hh | 8 +- .../VRML/include/G4VRML2SceneHandler.hh | 2 +- .../VRML/include/G4VRML2Viewer.hh | 2 +- .../VRML/include/G4VRMLNetConfig.hh | 2 +- source/visualization/VRML/src/FRClient.cc | 2 +- source/visualization/VRML/src/G4FRClient.cc | 2 +- source/visualization/VRML/src/G4VRML1.cc | 2 +- source/visualization/VRML/src/G4VRML1File.cc | 2 +- .../VRML/src/G4VRML1FileSceneHandler.cc | 8 +- .../VRML/src/G4VRML1FileViewer.cc | 2 +- .../VRML/src/G4VRML1SceneHandler.cc | 6 +- .../VRML/src/G4VRML1SceneHandlerFunc.icc | 8 +- .../visualization/VRML/src/G4VRML1Viewer.cc | 2 +- source/visualization/VRML/src/G4VRML2.cc | 2 +- source/visualization/VRML/src/G4VRML2File.cc | 2 +- .../VRML/src/G4VRML2FileSceneHandler.cc | 8 +- .../VRML/src/G4VRML2FileViewer.cc | 2 +- .../VRML/src/G4VRML2SceneHandler.cc | 6 +- .../VRML/src/G4VRML2SceneHandlerFunc.icc | 8 +- .../visualization/VRML/src/G4VRML2Viewer.cc | 2 +- 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 | 6 +- source/visualization/XXX/src/G4XXXViewer.cc | 6 +- .../include/G4GraphicsSystemList.hh | 12 +- .../management/include/G4Scene.hh | 20 +- .../management/include/G4Scene.icc | 12 +- .../management/include/G4SceneHandlerList.hh | 12 +- .../management/include/G4SceneList.hh | 12 +- .../management/include/G4VGraphicsSystem.hh | 6 +- .../management/include/G4VGraphicsSystem.icc | 2 +- .../management/include/G4VSceneHandler.hh | 6 +- .../management/include/G4VSceneHandler.icc | 2 +- .../management/include/G4VViewer.hh | 6 +- .../management/include/G4VViewer.icc | 2 +- .../management/include/G4VVisCommand.hh | 18 +- .../management/include/G4VVisCommand.icc | 2 +- .../management/include/G4ViewParameters.hh | 12 +- .../management/include/G4ViewParameters.icc | 2 +- .../management/include/G4ViewerList.hh | 12 +- .../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 | 6 +- .../include/G4VisFeaturesOfDAWNFILE.hh | 2 +- .../include/G4VisFeaturesOfFukuiRenderer.hh | 2 +- .../include/G4VisFeaturesOfOpenGL.hh | 2 +- .../include/G4VisFeaturesOfOpenInventor.hh | 2 +- .../management/include/G4VisManager.hh | 20 +- .../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 | 14 +- .../management/src/G4SceneHandlerList.cc | 2 +- .../management/src/G4SceneList.cc | 2 +- .../management/src/G4VGraphicsSystem.cc | 6 +- .../management/src/G4VSceneHandler.cc | 16 +- .../visualization/management/src/G4VViewer.cc | 12 +- .../management/src/G4VVisCommand.cc | 26 +- .../management/src/G4ViewParameters.cc | 8 +- .../management/src/G4ViewerList.cc | 2 +- .../management/src/G4VisCommands.cc | 10 +- .../management/src/G4VisCommandsCompound.cc | 24 +- .../management/src/G4VisCommandsScene.cc | 53 +- .../management/src/G4VisCommandsSceneAdd.cc | 168 +- .../src/G4VisCommandsSceneHandler.cc | 44 +- .../management/src/G4VisCommandsViewer.cc | 70 +- .../management/src/G4VisCommandsViewerSet.cc | 10 +- .../management/src/G4VisFeaturesOfDAWNFILE.cc | 2 +- .../src/G4VisFeaturesOfFukuiRenderer.cc | 2 +- .../management/src/G4VisFeaturesOfOpenGL.cc | 2 +- .../src/G4VisFeaturesOfOpenInventor.cc | 2 +- .../management/src/G4VisManager.cc | 12 +- .../management/src/G4VisStateDependent.cc | 2 +- .../modeling/include/G4AxesModel.hh | 2 +- .../modeling/include/G4AxesModel.icc | 2 +- .../modeling/include/G4BoundingSphereScene.hh | 6 +- .../include/G4FlavoredParallelWorldModel.hh | 2 +- .../modeling/include/G4HitsModel.hh | 2 +- .../modeling/include/G4HitsModel.icc | 2 +- .../modeling/include/G4LogicalVolumeModel.hh | 2 +- .../modeling/include/G4ModelingParameters.hh | 6 +- .../modeling/include/G4ModelingParameters.icc | 2 +- .../modeling/include/G4NullModel.hh | 2 +- .../modeling/include/G4PhysicalVolumeModel.hh | 2 +- .../include/G4PhysicalVolumeSearchScene.hh | 6 +- .../include/G4PhysicalVolumeSearchScene.icc | 2 +- .../modeling/include/G4ScaleModel.hh | 2 +- .../modeling/include/G4ScaleModel.icc | 2 +- .../modeling/include/G4TextModel.hh | 2 +- .../modeling/include/G4TextModel.icc | 2 +- .../modeling/include/G4TrajectoriesModel.hh | 2 +- .../modeling/include/G4TrajectoriesModel.icc | 2 +- .../modeling/include/G4VModel.hh | 6 +- .../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 | 2 +- .../modeling/src/G4LogicalVolumeModel.cc | 2 +- .../modeling/src/G4ModelingParameters.cc | 6 +- .../visualization/modeling/src/G4NullModel.cc | 6 +- .../modeling/src/G4PhysicalVolumeModel.cc | 14 +- .../src/G4PhysicalVolumeSearchScene.cc | 6 +- .../modeling/src/G4ScaleModel.cc | 2 +- .../visualization/modeling/src/G4TextModel.cc | 2 +- .../modeling/src/G4TrajectoriesModel.cc | 2 +- source/visualization/modeling/src/G4VModel.cc | 8 +- 5454 files changed, 223141 insertions(+), 67347 deletions(-) create mode 100644 ReleaseNotes/Patch4.5.1-1.txt create mode 100644 ReleaseNotes/ReleaseNotes4.5.2.txt create mode 100644 examples/advanced/Rich/GNUmakefile create mode 100644 examples/advanced/Rich/README create mode 100644 examples/advanced/Rich/RichTbSim.cc create mode 100644 examples/advanced/Rich/RichTbVis0.mac create mode 100644 examples/advanced/Rich/include/AerogelRefData.hh create mode 100644 examples/advanced/Rich/include/AerogelTypeSpec.hh create mode 100644 examples/advanced/Rich/include/FilterTrData.hh create mode 100644 examples/advanced/Rich/include/FilterTypeSpec.hh create mode 100644 examples/advanced/Rich/include/HpdSiEnergyLoss.hh create mode 100644 examples/advanced/Rich/include/PadHpdPhotoElectricEffect.hh create mode 100644 examples/advanced/Rich/include/RichTbAnalysisManager.hh create mode 100644 examples/advanced/Rich/include/RichTbAnalysisMessenger.hh create mode 100644 examples/advanced/Rich/include/RichTbComponent.hh create mode 100644 examples/advanced/Rich/include/RichTbDetectorConstruction.hh create mode 100644 examples/advanced/Rich/include/RichTbEventAction.hh create mode 100644 examples/advanced/Rich/include/RichTbGeometryParameters.hh create mode 100644 examples/advanced/Rich/include/RichTbGraphics.hh create mode 100644 examples/advanced/Rich/include/RichTbHall.hh create mode 100644 examples/advanced/Rich/include/RichTbHit.hh create mode 100644 examples/advanced/Rich/include/RichTbHpd.hh create mode 100644 examples/advanced/Rich/include/RichTbIOData.hh create mode 100644 examples/advanced/Rich/include/RichTbMaterial.hh create mode 100644 examples/advanced/Rich/include/RichTbMaterialParameters.hh create mode 100644 examples/advanced/Rich/include/RichTbPhotoDetector.hh create mode 100644 examples/advanced/Rich/include/RichTbPhysicsList.hh create mode 100644 examples/advanced/Rich/include/RichTbPrimaryGeneratorAction.hh create mode 100644 examples/advanced/Rich/include/RichTbPrimaryGeneratorMessenger.hh create mode 100644 examples/advanced/Rich/include/RichTbRODummySD.hh create mode 100644 examples/advanced/Rich/include/RichTbROGeometry.hh create mode 100644 examples/advanced/Rich/include/RichTbRunAction.hh create mode 100644 examples/advanced/Rich/include/RichTbRunConfig.hh create mode 100644 examples/advanced/Rich/include/RichTbSD.hh create mode 100644 examples/advanced/Rich/include/RichTbSiDet.hh create mode 100644 examples/advanced/Rich/include/RichTbSiPixel.hh create mode 100644 examples/advanced/Rich/include/RichTbStackingAction.hh create mode 100644 examples/advanced/Rich/include/RichTbSteppingAction.hh create mode 100644 examples/advanced/Rich/include/RichTbTrackingAction.hh create mode 100644 examples/advanced/Rich/include/RichTbVisManager.hh create mode 100644 examples/advanced/Rich/inputData/FilterTransInput.dat create mode 100644 examples/advanced/Rich/inputData/aerogelRefIndexInput.dat create mode 100644 examples/advanced/Rich/macro/gui.mac create mode 100644 examples/advanced/Rich/outputData/McOutputG4Example.dat create mode 100644 examples/advanced/Rich/outputData/MyOutputDataFile create mode 100644 examples/advanced/Rich/run1.mac create mode 100644 examples/advanced/Rich/src/AerogelRefData.cc create mode 100644 examples/advanced/Rich/src/FilterTrData.cc create mode 100644 examples/advanced/Rich/src/HpdSiEnergyLoss.cc create mode 100644 examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc create mode 100644 examples/advanced/Rich/src/RichTbAnalysisManager.cc create mode 100644 examples/advanced/Rich/src/RichTbAnalysisMessenger.cc create mode 100644 examples/advanced/Rich/src/RichTbComponent.cc create mode 100644 examples/advanced/Rich/src/RichTbDetectorConstruction.cc create mode 100644 examples/advanced/Rich/src/RichTbEventAction.cc create mode 100644 examples/advanced/Rich/src/RichTbGeometryParameters.cc create mode 100644 examples/advanced/Rich/src/RichTbGraphics.cc create mode 100644 examples/advanced/Rich/src/RichTbHall.cc create mode 100644 examples/advanced/Rich/src/RichTbHit.cc create mode 100644 examples/advanced/Rich/src/RichTbHpd.cc create mode 100644 examples/advanced/Rich/src/RichTbIOData.cc create mode 100644 examples/advanced/Rich/src/RichTbMaterial.cc create mode 100644 examples/advanced/Rich/src/RichTbMaterialParameters.cc create mode 100644 examples/advanced/Rich/src/RichTbPhotoDetector.cc create mode 100644 examples/advanced/Rich/src/RichTbPhysicsList.cc create mode 100644 examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc create mode 100644 examples/advanced/Rich/src/RichTbPrimaryGeneratorMessenger.cc create mode 100644 examples/advanced/Rich/src/RichTbROGeometry.cc create mode 100644 examples/advanced/Rich/src/RichTbRunAction.cc create mode 100644 examples/advanced/Rich/src/RichTbRunConfig.cc create mode 100644 examples/advanced/Rich/src/RichTbSD.cc create mode 100644 examples/advanced/Rich/src/RichTbSiDet.cc create mode 100644 examples/advanced/Rich/src/RichTbSiPixel.cc create mode 100644 examples/advanced/Rich/src/RichTbStackingAction.cc create mode 100644 examples/advanced/Rich/src/RichTbSteppingAction.cc create mode 100644 examples/advanced/Rich/src/RichTbTrackingAction.cc create mode 100644 examples/advanced/Rich/src/RichTbVisManager.cc create mode 100644 examples/advanced/Tiara/GNUmakefile create mode 100644 examples/advanced/Tiara/History create mode 100644 examples/advanced/Tiara/README create mode 100644 examples/advanced/Tiara/data/expDataConverted/TiaraData2.xml create mode 100644 examples/advanced/Tiara/data/expDataConverted/dpsSource.xml create mode 100644 examples/advanced/Tiara/data/expDataConverted/source.xml create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c100-00.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c150-00.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c25-00a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c25-20a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c25-40a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c50-00a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c50-20a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/43c50-40a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c100-00.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c150-00.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c200-00.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c25-00a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c25-20a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c25-40a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c50-00a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c50-20a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/68c50-40a.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/source-for-shield-exp-43.pnt create mode 100644 examples/advanced/Tiara/data/expDataOrig/source-for-shield-exp-68.pnt create mode 100644 examples/advanced/Tiara/envCommon.csh create mode 100755 examples/advanced/Tiara/run/runSim.py create mode 100755 examples/advanced/Tiara/run/runSimNoAnalysis.py create mode 100644 examples/advanced/Tiara/run/runVisMode.py create mode 100644 examples/advanced/Tiara/run/vis.mac create mode 100644 examples/advanced/Tiara/source/CLHEPWrapper/GNUmakefile create mode 100644 examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i create mode 100644 examples/advanced/Tiara/source/CLHEPWrapper/src/README create mode 100644 examples/advanced/Tiara/source/G4KernelWrapper/G4String.i create mode 100644 examples/advanced/Tiara/source/G4KernelWrapper/GNUmakefile create mode 100644 examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i create mode 100644 examples/advanced/Tiara/source/G4KernelWrapper/src/README create mode 100644 examples/advanced/Tiara/source/TiaraWrapper/GNUmakefile create mode 100644 examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i create mode 100644 examples/advanced/Tiara/source/TiaraWrapper/src/README create mode 100644 examples/advanced/Tiara/source/py_modules/dataAcess.py create mode 100644 examples/advanced/Tiara/source/py_modules/detector.py create mode 100644 examples/advanced/Tiara/source/py_modules/dpsManip.py create mode 100644 examples/advanced/Tiara/source/py_modules/extractShelve.py create mode 100644 examples/advanced/Tiara/source/py_modules/liz.py create mode 100644 examples/advanced/Tiara/source/py_modules/myLiz.py create mode 100644 examples/advanced/Tiara/source/py_modules/myUtils.py create mode 100644 examples/advanced/Tiara/source/py_modules/parallelHall.py create mode 100644 examples/advanced/Tiara/source/py_modules/posLog.py create mode 100644 examples/advanced/Tiara/source/py_modules/runSequence.py create mode 100644 examples/advanced/Tiara/source/py_modules/slabGeometry.py create mode 100644 examples/advanced/Tiara/source/py_modules/tallyData.py create mode 100644 examples/advanced/Tiara/source/py_modules/tiaraApplication.py create mode 100644 examples/advanced/Tiara/source/py_modules/tiaraDetectors.py create mode 100644 examples/advanced/Tiara/source/py_modules/tiaraGenerators.py create mode 100644 examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py create mode 100644 examples/advanced/Tiara/source/py_modules/variableGeometry.py create mode 100644 examples/advanced/Tiara/source/swig.gmk create mode 100644 examples/advanced/Tiara/source/tiara/GNUmakefile create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraPart.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraSim.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraStackingAction.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraTally.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh create mode 100644 examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh create mode 100644 examples/advanced/Tiara/source/tiara/src/G4LElastic.cc-alt create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc-Smeared create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraSim.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraTally.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc rename source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc => examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc (85%) create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc create mode 100755 examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc create mode 100644 examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc create mode 100644 examples/advanced/Tiara/source/tiara/tiara.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/GNUmakefile create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsCASCADE_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_BIC.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_BIC_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_LEAD_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO_HP.hh rename examples/advanced/{composite_calorimeter/include/CCalPhysicsList.hh => Tiara/source/tiaraPhysicsLists/include/LHEP_BIC.hh} (83%) create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/LHEP_BIC_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/Physics_CASCADE_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/Physics_LHEP_LEAD_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/Physics_LHEP_PRECO.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/include/Physics_LHEP_PRECO_HP.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsCASCADE_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_BIC.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_BIC_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_LEAD_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/LHEP_BIC.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/LHEP_BIC_HP.cc rename examples/advanced/{composite_calorimeter/src/CCalPhysicsList.cc => Tiara/source/tiaraPhysicsLists/src/Physics_CASCADE_HP.cc} (83%) create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/Physics_LHEP_LEAD_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/Physics_LHEP_PRECO.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsLists/src/Physics_LHEP_PRECO_HP.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/GNUmakefile create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMModelPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EM_GNPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4CascadeNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4CascadeProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4DataQuestionaire.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMModelBuilder.hh rename examples/advanced/{composite_calorimeter => Tiara/source/tiaraPhysicsPackaging}/include/G4ElectroNuclearBuilder.hh (99%) create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronModelQEDBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronQEDBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4MiscLHEPBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronHPBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4ProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPProtonBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4StoppingHadronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VNeutronBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VPiKBuilder.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VProtonBuilder.hh rename source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh => examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/GeneralPhysics.hh (52%) create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonModelPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonModelPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonPhysics.hh create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EMModelPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EMPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EM_GNPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMModelBuilder.cc rename examples/advanced/{composite_calorimeter => Tiara/source/tiaraPhysicsPackaging}/src/G4ElectroNuclearBuilder.cc (99%) create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronModelQEDBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronQEDBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4MiscLHEPBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronHPBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPNeutronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPPiKBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPProtonBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4StoppingHadronBuilder.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/GeneralPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonModelPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonModelPhysics.cc create mode 100644 examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonPhysics.cc create mode 100644 examples/advanced/brachytherapy/IodiumSourceMacro.mac create mode 100644 examples/advanced/brachytherapy/IodiumSourceMacro.out create mode 100644 examples/advanced/brachytherapy/IridiumSourceMacro.mac create mode 100644 examples/advanced/brachytherapy/LeipzigSourceMacro.mac create mode 100644 examples/advanced/brachytherapy/VisualisationMacro.mac delete mode 100644 examples/advanced/brachytherapy/brachy.py delete mode 100644 examples/advanced/brachytherapy/brachytherapy.hbk delete mode 100644 examples/advanced/brachytherapy/initInter.mac create mode 100644 examples/advanced/composite_calorimeter/include/EMModelPhysics.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4DataQuestionaire.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4EMModelBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4HadronModelQEDBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/IonModelPhysics.hh create mode 100644 examples/advanced/composite_calorimeter/include/LHEP.hh create mode 100644 examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh create mode 100644 examples/advanced/composite_calorimeter/include/QGSC.hh create mode 100644 examples/advanced/composite_calorimeter/include/QGSP.hh delete mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-LHEP delete mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSC delete mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSP create mode 100644 examples/advanced/composite_calorimeter/src/EMModelPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4EMModelBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/IonModelPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/src/LHEP.cc create mode 100644 examples/advanced/composite_calorimeter/src/MuonModelPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/src/QGSC.cc create mode 100644 examples/advanced/composite_calorimeter/src/QGSP.cc create mode 100644 examples/advanced/gammaray_telescope/emlowe.mac create mode 100644 examples/advanced/gammaray_telescope/emstd.mac create mode 100644 examples/advanced/gammaray_telescope/gammaraytel.stt_out create mode 100644 examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh rename source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh => examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh (51%) create mode 100644 examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh create mode 100644 examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh create mode 100644 examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh create mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc create mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelGeneralPhysics.cc create mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc create mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc create mode 100644 examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc create mode 100644 examples/advanced/lAr_calorimeter/run1.out create mode 100644 examples/advanced/underground_physics/stt.out create mode 100644 examples/advanced/xray_telescope/xraytel.out create mode 100644 examples/extended/electromagnetic/TestEm2/run05.mac create mode 100644 examples/extended/electromagnetic/TestEm3/run09.mac create mode 100644 examples/extended/electromagnetic/TestEm5/geant3/run61.dat create mode 100644 examples/extended/electromagnetic/TestEm5/geant3/run71.dat create mode 100644 examples/extended/electromagnetic/TestEm5/geant3/run81.dat create mode 100644 examples/extended/electromagnetic/TestEm5/geant3/run91.dat create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmModel.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmStandard.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5PhysListGeneral.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5PhysListParticles.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5StepMax.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/Em5StepMaxMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/IonC12.hh create mode 100644 examples/extended/electromagnetic/TestEm5/run61.mac create mode 100644 examples/extended/electromagnetic/TestEm5/run71.mac create mode 100644 examples/extended/electromagnetic/TestEm5/run81.mac create mode 100644 examples/extended/electromagnetic/TestEm5/run91.mac create mode 100644 examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmModel.cc create mode 100644 examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmStandard.cc create mode 100644 examples/extended/electromagnetic/TestEm5/src/Em5PhysListGeneral.cc create mode 100644 examples/extended/electromagnetic/TestEm5/src/Em5PhysListParticles.cc rename examples/extended/electromagnetic/TestEm5/{include/Em5StepCut.hh => src/Em5StepMax.cc} (58%) create mode 100644 examples/extended/electromagnetic/TestEm5/src/Em5StepMaxMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm5/src/IonC12.cc create mode 100644 examples/extended/electromagnetic/TestEm7/GNUmakefile create mode 100644 examples/extended/electromagnetic/TestEm7/History create mode 100644 examples/extended/electromagnetic/TestEm7/README create mode 100644 examples/extended/electromagnetic/TestEm7/TestEm7.cc create mode 100644 examples/extended/electromagnetic/TestEm7/TestEm7.in create mode 100644 examples/extended/electromagnetic/TestEm7/TestEm7.out create mode 100644 examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/EventAction.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/IonC12.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListEmModel.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListGeneral.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysListParticles.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/RunAction.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/StepMax.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh create mode 100644 examples/extended/electromagnetic/TestEm7/include/VisManager.hh create mode 100644 examples/extended/electromagnetic/TestEm7/ionC12.mac create mode 100644 examples/extended/electromagnetic/TestEm7/run01.mac create mode 100644 examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/EventAction.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/IonC12.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListEmModel.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListGeneral.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysListParticles.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/RunAction.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/StepMax.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc create mode 100644 examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc create mode 100755 examples/extended/electromagnetic/TestEm7/src/VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm7/vis.mac create mode 100644 examples/extended/medical/DICOM/14196616.dat create mode 100644 examples/extended/medical/DICOM/14196616.dcm create mode 100644 examples/extended/medical/DICOM/14196616.g4 create mode 100644 examples/extended/medical/DICOM/14196633.dat create mode 100644 examples/extended/medical/DICOM/14196633.dcm create mode 100644 examples/extended/medical/DICOM/14196633.g4 create mode 100644 examples/extended/medical/DICOM/14196650.dat create mode 100644 examples/extended/medical/DICOM/14196650.dcm create mode 100644 examples/extended/medical/DICOM/14196650.g4 create mode 100644 examples/extended/medical/DICOM/CT2Density.dat create mode 100644 examples/extended/medical/DICOM/Data.dat create mode 100644 examples/extended/medical/DICOM/GNUmakefile create mode 100644 examples/extended/medical/DICOM/PhantomCT.jpg create mode 100644 examples/extended/medical/DICOM/README create mode 100644 examples/extended/medical/DICOM/default.mac create mode 100644 examples/extended/medical/DICOM/dicom.cc create mode 100644 examples/extended/medical/DICOM/include/DicomConfiguration.hh create mode 100644 examples/extended/medical/DICOM/include/DicomEventAction.hh create mode 100644 examples/extended/medical/DICOM/include/DicomGeometry.hh create mode 100644 examples/extended/medical/DICOM/include/DicomHandler.hh create mode 100644 examples/extended/medical/DICOM/include/DicomOctree.hh create mode 100644 examples/extended/medical/DICOM/include/DicomOctreeMiddleNode.hh create mode 100644 examples/extended/medical/DICOM/include/DicomOctreeNode.hh create mode 100644 examples/extended/medical/DICOM/include/DicomOctreeTerminalNode.hh create mode 100644 examples/extended/medical/DICOM/include/DicomPatientConstructor.hh create mode 100644 examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh create mode 100644 examples/extended/medical/DICOM/include/DicomPhysicsList.hh create mode 100644 examples/extended/medical/DICOM/include/DicomPrimaryGeneratorAction.hh create mode 100644 examples/extended/medical/DICOM/include/DicomVisManager.hh create mode 100644 examples/extended/medical/DICOM/run.mac create mode 100644 examples/extended/medical/DICOM/src/DicomConfiguration.cc create mode 100644 examples/extended/medical/DICOM/src/DicomEventAction.cc create mode 100644 examples/extended/medical/DICOM/src/DicomGeometry.cc create mode 100644 examples/extended/medical/DICOM/src/DicomHandler.cc create mode 100644 examples/extended/medical/DICOM/src/DicomOctree.cc create mode 100644 examples/extended/medical/DICOM/src/DicomOctreeMiddleNode.cc create mode 100644 examples/extended/medical/DICOM/src/DicomOctreeNode.cc create mode 100644 examples/extended/medical/DICOM/src/DicomOctreeTerminalNode.cc create mode 100644 examples/extended/medical/DICOM/src/DicomPatientConstructor.cc create mode 100644 examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc create mode 100644 examples/extended/medical/DICOM/src/DicomPhysicsList.cc create mode 100644 examples/extended/medical/DICOM/src/DicomPrimaryGeneratorAction.cc create mode 100644 examples/extended/medical/DICOM/src/DicomVisManager.cc create mode 100644 examples/extended/medical/DICOM/vis.mac create mode 100644 examples/novice/N03/visTutor/heprep.mac create mode 100644 source/processes/electromagnetic/lowenergy/include/G4ModifiedTsai.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4VBremAngularDistribution.hh create mode 100644 source/processes/electromagnetic/lowenergy/src/G4ModifiedTsai.cc rename source/processes/electromagnetic/lowenergy/src/{G4AtomicTransition.cc => G4VBremAngularDistribution.cc} (52%) rename source/processes/electromagnetic/utils/include/{G4LewisModel.hh => G4MscModel.hh} (82%) delete mode 100644 source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.icc rename source/processes/electromagnetic/utils/src/{G4LewisModel.cc => G4MscModel.cc} (74%) delete mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc delete mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc delete mode 100644 source/processes/hadronic/models/cascade/doc/GNUmakefile delete mode 100644 source/processes/hadronic/models/cascade/doc/README delete mode 100644 source/processes/hadronic/models/cascade/doc/espcrc2.sty delete mode 100644 source/processes/hadronic/models/cascade/doc/evaporationUml.eps delete mode 100644 source/processes/hadronic/models/cascade/doc/hetc.eps delete mode 100644 source/processes/hadronic/models/cascade/doc/hetc.mdl delete mode 100644 source/processes/hadronic/models/cascade/doc/manCascade.ps delete mode 100644 source/processes/hadronic/models/cascade/doc/manCascade.tex delete mode 100644 source/processes/hadronic/models/cascade/doc/manHetc.tex delete mode 100644 source/processes/hadronic/models/cascade/doc/manInucl.tex delete mode 100644 source/processes/hadronic/models/cascade/doc/massPb.eps2 delete mode 100644 source/processes/hadronic/models/cascade/doc/preEquilibriumUml.eps delete mode 100644 source/processes/hadronic/models/cascade/evaporation/doc/evaporation.mdl delete mode 100644 source/processes/hadronic/models/cascade/evaporation/doc/evaporation.mdl.eps create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4GNASHTransitions.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCAlpha.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCChargedFragment.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCDeuteron.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCEmissionFactory.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.icc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCHe3.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCNeutron.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCProton.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCTriton.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.icc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmissionFactory.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragment.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundIon.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNucleon.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundEmissionFactory.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundTransitions.hh create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4GNASHTransitions.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCAlpha.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCChargedFragment.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCDeuteron.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCEmissionFactory.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCFragment.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCHe3.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCNeutron.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCProton.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4HETCTriton.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmissionFactory.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragment.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundIon.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNucleon.cc create mode 100644 source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundEmissionFactory.cc create mode 100644 source/processes/hadronic/util/include/G4Delete.hh create mode 100644 source/processes/hadronic/util/include/G4ping.hh diff --git a/ReleaseNotes/Patch4.4.0-1.txt b/ReleaseNotes/Patch4.4.0-1.txt index 66bdfaefce..422c6b1245 100644 --- a/ReleaseNotes/Patch4.4.0-1.txt +++ b/ReleaseNotes/Patch4.4.0-1.txt @@ -94,9 +94,8 @@ List of fixes included in this public patch to release 4.0: 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. +- see our Geant4 Home Page (http://cern.ch/geant4). +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. diff --git a/ReleaseNotes/Patch4.4.0-2.txt b/ReleaseNotes/Patch4.4.0-2.txt index 5f10034164..da996ee4c1 100644 --- a/ReleaseNotes/Patch4.4.0-2.txt +++ b/ReleaseNotes/Patch4.4.0-2.txt @@ -149,9 +149,8 @@ top of patch-01: 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. +- see our Geant4 Home Page (http://cern.ch/geant4). +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. diff --git a/ReleaseNotes/Patch4.4.1-1.txt b/ReleaseNotes/Patch4.4.1-1.txt index 3b2e4e37b0..589857c05b 100644 --- a/ReleaseNotes/Patch4.4.1-1.txt +++ b/ReleaseNotes/Patch4.4.1-1.txt @@ -105,8 +105,8 @@ List of fixes included in this public patch to release 4.1: The code and rebuilt binary libraries for release 4.1 are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. diff --git a/ReleaseNotes/Patch4.5.0-1.txt b/ReleaseNotes/Patch4.5.0-1.txt index 2b8a57ebd3..9264b25ce1 100644 --- a/ReleaseNotes/Patch4.5.0-1.txt +++ b/ReleaseNotes/Patch4.5.0-1.txt @@ -174,8 +174,8 @@ List of fixes included in this public patch to release 5.0: The code and rebuilt binary libraries for release 5.0 are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. diff --git a/ReleaseNotes/Patch4.5.1-1.txt b/ReleaseNotes/Patch4.5.1-1.txt new file mode 100644 index 0000000000..82a2f26d6b --- /dev/null +++ b/ReleaseNotes/Patch4.5.1-1.txt @@ -0,0 +1,64 @@ + + Geant4 5.1 - patch-01 Release Notes + ----------------------------------- + + 19 May 2003 + +List of fixes included in this public patch to release 5.1: + + o Electromagnetic processes (standard): + ------------------------------------ + + muons: + - Commented out debug printout in G4MuPairProduction. + + o Geometry: + -------- + + solids/Boolean: + - Added set/get methods for scale precision in G4ReflectionFactory. + + volumes: + - G4PropagatorInField.cc: fix in ComputeStep() to avoid step computation + if proposed step length is too small. Fixes problem noticed in release + 5.1 and occasionally appearing as "Invalid Enum in [solid-type]", also + registered as problem report #485. + + o Hadronic processes: + ------------------ + + models/generator/kinetic_model + o G4BinaryCascade: fix to cure infinite loop observed in inelastic + scattering of hydrogen. + + o Run: + --- + - G4RunManager: fixed behavior of function DefineWorldVolume() + to properly reset navigation history and optimisation in case the + topology of the geometry has changed between runs. Now only a single + call to DefineWorldVolume() is necessary when changing the geometry. + Fixes also problem report #481. + o Added new boolean argument (default set to TRUE) to specify if + topology has changed. + o Forced open/close geometry in method ResetNavigator() to properly + reset G4Navigator status and remove old optimisations. + + o Examples: + -------- + - novice/N04 + o Corrected printout. + - extended/electromagnetic - TestEm1, TestEm2, TestEm3 + o Simplified mechanism for updating geometries between runs, + according to changes in G4RunManager::DefineWorldVolume(). + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 5.1. + o Technical notes distributed for release 5.1 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 5.1 are available through +our "Source Code" Web page: http://cern.ch/geant4 + +Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/G4UsersDocuments/Overview/html +for further information about using Geant4. diff --git a/ReleaseNotes/ReleaseNotes4.0.1.txt b/ReleaseNotes/ReleaseNotes4.0.1.txt index 0b944faea4..e3c29c1fb8 100644 --- a/ReleaseNotes/ReleaseNotes4.0.1.txt +++ b/ReleaseNotes/ReleaseNotes4.0.1.txt @@ -21,13 +21,11 @@ Note that the next release, Geant4.1.0, will be offered only in the STL version. This code and some binary libraries are available through our "Source -Code" Web page - see our Geant4 Home -Page. +Code" Web page - see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4.0.1 are still in preparation and are expected to be published within three weeks. @@ -68,9 +66,9 @@ Platforms also tested but giving rise to some problems - see below: 2. CLHEP 1.4 ------------ -Geant4.0.1 requires the installation of CLHEP -1.4. The following platform specific instructions apply: +Geant4.0.1 requires the installation of CLHEP 1.4 +(http://cern.ch/clhep/INSTALLATION/clhep.html). +The following platform specific instructions apply: DEC: Do *not* use the compiler option "-std strict_ansi". @@ -84,10 +82,10 @@ href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">CLHEP The following versions of STL have been tested: - ObjectSpace STL on: AIX, + ObjectSpace STL (http://www.objectspace.com) on: AIX, DEC, HP, NT and SUN. - STLPORT STL on: NT + STLPORT STL (http://www.stlport.org) on: NT "Native" STL on: Linux. diff --git a/ReleaseNotes/ReleaseNotes4.1.0.txt b/ReleaseNotes/ReleaseNotes4.1.0.txt index e3bfbcd761..9e445c5cfa 100644 --- a/ReleaseNotes/ReleaseNotes4.1.0.txt +++ b/ReleaseNotes/ReleaseNotes4.1.0.txt @@ -80,12 +80,11 @@ Notes: This code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 - Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4 1.0 are still in preparation and are expected to be published within three weeks. @@ -128,8 +127,7 @@ Platforms configured but not tested and not supported: Geant4 1.0 requires the installation of CLHEP 1.4. -See -CLHEP 1.4. +See CLHEP 1.4 (http://cern.ch/clhep/INSTALLATION/clhep.html). The following platform specific instructions apply: @@ -148,7 +146,7 @@ The following versions of STL have been tested: ObjectSpace STL on DEC, HP, NT and SUN. - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). "Native" STL on: Linux, HP. diff --git a/ReleaseNotes/ReleaseNotes4.1.1.txt b/ReleaseNotes/ReleaseNotes4.1.1.txt index cb89859fe5..bb01093c60 100644 --- a/ReleaseNotes/ReleaseNotes4.1.1.txt +++ b/ReleaseNotes/ReleaseNotes4.1.1.txt @@ -83,12 +83,11 @@ Notes: The source code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 - Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Contents @@ -130,8 +129,7 @@ Platforms configured but not tested and not supported: Geant4 1.0 requires the installation of CLHEP 1.4. -See -CLHEP 1.4. +See CLHEP 1.4 (http://cern.ch/clhep/INSTALLATION/clhep.html). Be aware, for the platforms listed below, the standard CLHEP installation will use ISO-ANSI setup: @@ -156,7 +154,7 @@ The following versions of STL have been tested: ObjectSpace STL on DEC, HP, NT and SUN. - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). This is selected at installation/compile time by the environment variable G4USE_OSPACE in the case of the latter - see documentation. diff --git a/ReleaseNotes/ReleaseNotes4.2.0.txt b/ReleaseNotes/ReleaseNotes4.2.0.txt index 141d9a6718..c7a701ce9f 100644 --- a/ReleaseNotes/ReleaseNotes4.2.0.txt +++ b/ReleaseNotes/ReleaseNotes4.2.0.txt @@ -201,11 +201,11 @@ Notes: The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4 2.0 are expected to be published as usual within three weeks from the release date. @@ -253,8 +253,7 @@ Platforms configured but not tested and not supported: Geant4 2.0 requires the installation of CLHEP 1.5. -See -CLHEP 1.5. +See CLHEP 1.5 (http://cern.ch/clhep/INSTALLATION/clhep.html). 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 @@ -269,9 +268,6 @@ Geant4 2.0 coworks with LHC++ 2.0.0 and components included therein: ObjectSpace 2.1 HepODBMS 0.3.1.3 CLHEP 1.5.0.0 - -For more information about LHC++ 2.0.0, see: - LHC++ 2.0.0 3. The Standard Template Library -------------------------------- @@ -281,7 +277,7 @@ The following versions of STL have been tested: ObjectSpace STL on DEC, HP and SUN. - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). "Native" STL on: Linux, HP, DEC and SUN. diff --git a/ReleaseNotes/ReleaseNotes4.3.0.txt b/ReleaseNotes/ReleaseNotes4.3.0.txt index abbea305b7..4f08e1def0 100644 --- a/ReleaseNotes/ReleaseNotes4.3.0.txt +++ b/ReleaseNotes/ReleaseNotes4.3.0.txt @@ -337,11 +337,11 @@ Notes: The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4 3.0 are expected to be published as usual within three weeks from the release date. @@ -385,8 +385,8 @@ Platforms configured but not tested and not supported: Geant4 3.0 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.6.0.0. +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.6.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 @@ -398,8 +398,7 @@ Geant4 3.0 coworks with ANAPHE 3.2.0 and components included therein: HepODBMS 0.3.1.4 CLHEP 1.6.0.0 -For more information about ANAPHE 3.2.0, see: - ANAPHE 3.2.0 +For more information about ANAPHE see: http://cern.ch/anaphe 3. The Standard Template Library @@ -410,7 +409,7 @@ The following versions of STL have been tested: ObjectSpace STL on DEC, HP and SUN (CC 4.2). - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.1). @@ -507,7 +506,7 @@ 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 + http://cern.ch/geant4/problemreport 7. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.3.1.txt b/ReleaseNotes/ReleaseNotes4.3.1.txt index 0f213e3443..9f9da20cb2 100644 --- a/ReleaseNotes/ReleaseNotes4.3.1.txt +++ b/ReleaseNotes/ReleaseNotes4.3.1.txt @@ -292,11 +292,11 @@ Notes: The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4 3.1 are expected to be published as usual within three weeks from the release date. @@ -340,8 +340,8 @@ Platforms configured but not tested and not supported: Geant4 3.1 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.6.0.0. +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.6.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 @@ -353,8 +353,7 @@ Geant4 3.1 coworks with ANAPHE 3.2.0 and components included therein: HepODBMS 0.3.1.4 CLHEP 1.6.0.0 -For more information about ANAPHE 3.2.0, see: - ANAPHE 3.2.0 +For more information about ANAPHE, see: http://cern.ch/anaphe 3. The Standard Template Library @@ -364,7 +363,7 @@ The following versions of STL have been tested: ObjectSpace STL on SUN (CC 4.2). - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2). @@ -423,7 +422,7 @@ 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 + http://cern.ch/geant4/problemreport 7. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.3.2.txt b/ReleaseNotes/ReleaseNotes4.3.2.txt index 62db2bb461..7083662f6d 100644 --- a/ReleaseNotes/ReleaseNotes4.3.2.txt +++ b/ReleaseNotes/ReleaseNotes4.3.2.txt @@ -251,11 +251,11 @@ Notes: The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Updates to the documentation for Geant4 3.2 are expected to be published as usual within three weeks from the release date. @@ -299,8 +299,8 @@ Platforms configured but not tested and not supported: Geant4 3.2 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.6.0.0. +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.6.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 @@ -312,8 +312,7 @@ Geant4 3.2 coworks with ANAPHE 3.6.0 and components included therein: HepODBMS 0.3.2.9 CLHEP 1.6.0.0 -For more information about ANAPHE 3.6.0, see: - ANAPHE +For more information about ANAPHE, see: http://cern.ch/anaphe 3. The Standard Template Library @@ -323,7 +322,7 @@ The following versions of STL have been tested: ObjectSpace STL on SUN (CC 4.2). - See ObjectSpace. + See ObjectSpace (http://www.objectspace.com). "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2). @@ -419,7 +418,7 @@ 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 + http://cern.ch/geant4/problemreport 7. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.4.0.txt b/ReleaseNotes/ReleaseNotes4.4.0.txt index cc10ffdd74..c22acbc3bb 100644 --- a/ReleaseNotes/ReleaseNotes4.4.0.txt +++ b/ReleaseNotes/ReleaseNotes4.4.0.txt @@ -468,11 +468,11 @@ to the related History files): The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Contents @@ -514,8 +514,8 @@ Platforms configured but not tested and not supported: Geant4 4.0 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.7.0.0. +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.7.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 @@ -526,8 +526,7 @@ Geant4 4.0 coworks with ANAPHE 3.6.5 and components included therein: HepODBMS 0.3.3.1 CLHEP 1.7.0.0 -For more information about ANAPHE 3.6.5, see: - ANAPHE +For more information about ANAPHE, see: http://cern.ch/anaphe 3. The Standard Template Library @@ -626,7 +625,7 @@ 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 + http://cern.ch/geant4/problemreport 7. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.4.1.txt b/ReleaseNotes/ReleaseNotes4.4.1.txt index c04c3beb6f..7e1919e419 100644 --- a/ReleaseNotes/ReleaseNotes4.4.1.txt +++ b/ReleaseNotes/ReleaseNotes4.4.1.txt @@ -247,11 +247,11 @@ to the related History files): The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Contents @@ -292,8 +292,8 @@ Platforms configured but not tested and not supported: Geant4 4.1 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.7.5.0. However, first +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +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 @@ -306,14 +306,13 @@ These include: Objectivity 6.1.3 HepODBMS 0.3.3.1 CLHEP 1.7.5.0 - (see: ANAPHE) + (see: http://cern.ch/anaphe) - JAS 2.2.5 - (see: JAS) + (see: http://jas.freehep.org) - Open Scientist v8 - (see: Open Scientist) + (see: http://www.lal.in2p3.fr/OpenScientist/v8/welcome.html) -AIDA headers can be downloaded from: - AIDA +AIDA headers can be downloaded from: http://aida.freehep.org 3. The Standard Template Library @@ -362,7 +361,7 @@ 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 + http://cern.ch/geant4/problemreport 7. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.5.0.txt b/ReleaseNotes/ReleaseNotes4.5.0.txt index ccdebe9974..694fd7a8a3 100644 --- a/ReleaseNotes/ReleaseNotes4.5.0.txt +++ b/ReleaseNotes/ReleaseNotes4.5.0.txt @@ -497,11 +497,11 @@ to the related History files): The code and some binary libraries are available through our "Source Code" Web page: -- see our Geant4 Home Page. +- see our Geant4 Home Page (http://cern.ch/geant4). -Please refer to Geant4 -User Documentation for further information about using Geant4. +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. Contents @@ -541,20 +541,19 @@ Platforms configured but not tested and not supported: Geant4 5.0 requires the installation of CLHEP. -See -CLHEP. Tests have been performed with CLHEP 1.8.0.0. +See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.8.0.0. Geant4 5.0 examples with histogramming cowork with AIDA 3.0 implementations. These include: - ANAPHE and components included therein - (see: ANAPHE) + (see: http://cern.ch/anaphe) - JAS (Java Analysis Studio) - (see: JAS) + (see: http://jas.freehep.org) - Open Scientist - (see: Open Scientist) + (see: http://www.lal.in2p3.fr/OpenScientist) -AIDA headers can be downloaded from: - AIDA +AIDA headers can be downloaded from: http://aida.freehep.org 3. The Standard Template Library @@ -597,7 +596,7 @@ 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 + http://cern.ch/geant4/problemreport 6. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.5.1.txt b/ReleaseNotes/ReleaseNotes4.5.1.txt index bb4543fe5b..89922e2e60 100644 --- a/ReleaseNotes/ReleaseNotes4.5.1.txt +++ b/ReleaseNotes/ReleaseNotes4.5.1.txt @@ -51,7 +51,7 @@ Platforms configured but not tested and not supported: ----------------- Geant4 5.1 requires the installation of CLHEP -(href="http://cern.ch/clhep/INSTALLATION/clhep.html). +(http://cern.ch/clhep/INSTALLATION/clhep.html). Tests have been performed with CLHEP 1.8.0.0. Geant4 5.1 examples with histogramming cowork with AIDA 3.0 implementations. @@ -107,7 +107,7 @@ 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 + http://cern.ch/geant4/problemreport 6. Compilation Warnings diff --git a/ReleaseNotes/ReleaseNotes4.5.2.txt b/ReleaseNotes/ReleaseNotes4.5.2.txt new file mode 100644 index 0000000000..8dd8025eb6 --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.5.2.txt @@ -0,0 +1,546 @@ + + Geant4 5.2 Release Notes + ------------------------ + + 27 June 2003 + +The code and some binary libraries are available through our "Source Code" +Web page (http://cern.ch/geant4). + +Please refer to the Geant4 User Documentation +(http://cern.ch/geant4/G4UsersDocuments/Overview/html) +for further information about using Geant4. + + +Contents +-------- + + 1. Supported and Tested Platforms + 2. AIDA and CLHEP + 3. The Standard Template Library (STL) + 4. Compiler Specific Problems + 5. Known Run-Time Problems + 6. Compilation Warnings + 7. Known Run-Time Warnings + 8. Features at Run-Time + 9. Items for migration of user code + + +1. Supported and Tested Platforms +--------------------------------- + + o SUN Solaris 5.8, C++ 5.4 Patch 111715-02. + o Linux, gcc 2.95.2, gcc 3.2. + This configuration was tested with the RedHat 7.3 distribution, + versions of Geant4 have also been compiled successfully on other + Linux distributions, like Debian or Suse. + The default RedHat compiler gcc-2.96 distributed in RedHat 7.X is NOT + supported. It has been verified that it produces incorrect binaries, + therefore is not reliable. See also note below. + o Windows-2000/XP and CygWin Tools with: Visual C++ 6.0 Service Pack 5 + +Platforms configured but not tested and not supported: + o DEC V4.0, cxx C++ V6.1-027 + o HP 10.20, aCC C++ B3910B A.01.23 + o SGI V6.5.5, CC 7.2.1 + o AIX 4.3.2, xlC 6.0 + o MacOS 10.2, gcc 2.95.2 / gcc-3.2 + o Windows/XP with CygWin Tools, .NET Visual Studio C++ 7 + + +2. AIDA and CLHEP +----------------- + +Geant4 5.2 requires the installation of CLHEP +(http://cern.ch/clhep/INSTALLATION/clhep.html). +Tests have been performed with CLHEP 1.8.0.0. + +Geant4 5.2 examples with histogramming cowork with AIDA 3.0 implementations. +These include: +- ANAPHE and components included therein + (see: ANAPHE - http://cern.ch/anaphe) +- JAS (Java Analysis Studio) + (see: JAS - http://jas.freehep.org) +- Open Scientist + (see: Open Scientist - http://www.lal.in2p3.fr/OpenScientist) + +AIDA headers can be downloaded from: + http://aida.freehep.org + + +3. The Standard Template Library +-------------------------------- + +Native versions of STL have been tested on the following platforms: + + Windows/2000, Linux, and SUN. + +NOTES: + +- Platform specific setup: + o SUN: Native STL is required for ISO/ANSI setup. + o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only). + o Windows: Native STL and ISO/ANSI setup required. + + +4. Compiler Specific Problems +----------------------------- + + o Linux Red Hat 7.X, gcc-2.96. + + - The default compiler distributed by Red Hat since release 7.0 is + NOT supported and not considered reliable for running a Geant4-based + application. In more than one test case, binaries produced by gcc-2.96 + have shown incorrect behavior, either due to wrong order of + initialisation of static data in memory or to bugs in the system + iostream classes, problems which apparently have all been solved in + more recent versions of the compiler (3.X series). + For information, gcc-2.96 is a compiler that has never been + officially released, nor supported by the GNU team itself and is not + considered reliable by the authors (for more information, see also + http://gcc.gnu.org/gcc-2.96.html). + + +5. Known Run-Time Problems and Limitations +------------------------------------------ + +For a complete list of outstanding run-time problems and to submit any +problem you may find running this version of Geant4, please refer to the +Geant4 Problem Reporting System, available on the Web at this address: + + http://cern.ch/geant4/problemreport + + +6. Compilation Warnings +----------------------- + +There are compilation warnings on some platforms. We do not believe +that any will lead to incorrect run-time behaviour, but we are working +on reducing them. + + +7. Known Run-Time Warnings +-------------------------- + +The following messages can be written to error output while tracking. +We believe none give rise to incorrect behaviour. + + o G4PropagateInField: Warning: Particle is looping + - tracking in field will be stopped. + It has performed 1000 steps in Field while a maximum of 1000 + are allowed. + + +8. Features at Run-Time +----------------------- + + o In the propagation in field, the default value of "maximum step count" + has been changed from 10000 to 1000. + This will cause more particles to be recognised to loop earlier (see + section 7 of these notes) as this parameter controls this behavior too. + + +9. Items for migration of user code +----------------------------------- + + o With this release, usage of the obsolete 'g4std' wrappers has been removed + from the code and wrappers themselves are now hard-coded to STL headers. + User code making use of these wrappers will still compile and run as + normal, however, we encourage to migrate the user code at the earliest + convenience. + From the -next- public release (and development/beta releases), wrappers + and definition of 'G4std' will be removed, therefore making the migration + of the user code mandatory: + - Any reference to G4std:: will have to be changed to std:: + - Any #include statement of the kind + #include "g4std/XXX" + will have to migrate to standard C++ calls of the kind + #include + o The new data sets for low-energy EM processes G4EMLOW2.2 is required + for applications making use of such processes. + + + ---------------------------------------------------------------------------- + + List of changes and fixes + ------------------------- + +These are the main new features/fixes included in this release since the +last patched public release (for the detailed list of fixes/additions, +please refer to the related History files): + + + o Configuration + ------------- + - Made build of STEP and STEPinterface modules optional. Added flags + G4LIB_BUILD_STEP/G4USE_STEP. By default the libraries will not be built. + - Removed G4_HAVE_BOOL macro. Now using default 'bool' type, + defined in all supported compilers. + - Removed flag G4USE_STD_NAMESPACE from specific setups in sys. + Follows migration from G4std and STL header wrappers apported in + the whole code. + - Removed obsolete usage of GNU_GCC specific option for g++ compilers. + - Modified mechanism for building shared libraries to include symbols + from external libs like OpenGL, ... so libraries will be self-contained + concerning their dependencies. + - Added UI32LIBS to interactivity.gmk to handle UI libraries on WIN32 + platforms and added libraries for OpenGL and UI to default setup of + WIN32-VC and WIN32-VC7. Removed some obsolete compilation options. + - Added more strict compiler options for warnings on Linux-g++ platform. + - Added missing module Bertini-Cascade to list of libraries for + compound build. + + o Digitization & Hits: + ------------------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Electromagnetic Processes (Low-energy): + -------------------------------------- + - Requires a new version of the data-set: G4EMLOW2.2. + - Improved design to allow for multiple models of Bremsstrahlung angular + distribution; currently the model for modified Tsai is provided. + - G4PenelopeCompton triggers atomic relaxation. + - Removed two memory leaks in Penelope processes and design flaw in + private interface of G4eBremsstrahlungSpectrum. + - Fixed argument to pow() in G4LinLogLogInterpolation.cc and + G4LogLogInterpolation.cc to allow for porting on .NET 7.1 compiler. + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Electromagnetic Processes (Standard): + ------------------------------------ + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + - Short-lived particles no longer applicable for G4hIonisation and + G4MultipleScattering. + - STD prototype processes: + + Updated initialisation for STD processes: integral Bohr fluctuations. + + Bug fix in cross section at high energies in G4MuPairProductionSTD. + + Removed and replaced obsolete multiple-scattering classes with "model" + variant. + + Fix in SupressionFunction of bremsstrahlung. + + Fix in dedx for e- ionisation for E<1keV. + + Removed tracking cut. + + Establish limits on eloss for Bohr and Ion fluctuations. + + Added precise range calculation. + + Default step parameters are now set to be as for standard processes. + - Multiple Scattering: + + IMPORTANT change in the angle distribution for muons/hadrons + the width of the central part now is corresponds to the value + can be computed from the HighLand formula (no change of this + kind for e+/e-) --> small change in the width for low to + medium energy (protons - 1 MeV - few hundred MeV) but change + up to 20 -25 % for high energy. + + minor correction in the angle sampling algorithm, affects + e+/e- too --> small change for very small and very big + stepsize/range values. + + Fixed misprint at Tev energies. + + Fix minor problem in nuclear form-factor calculations. + - G4VXTRenergyLoss: modifications in BuildPhysicsTable. + Angle range 0-0.3, Legendre96 integration in 0-0.3-0.6-1.0*fMaxThetaTR. + - Set default number 120 bins for dedx table in G4eIonisation. + - Updated PAI model: included high energy transfers. + - Trivial fixes in G4PAIxSection on arguments to pow() for porting on + .NET 7.1 compiler. + + o General Processes, Parameterisation, Decay, Optical: + --------------------------------------------------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Geometry: + -------- + - management: + o G4LogicalVolume: + + added method ClearDaughters() to be used for resetting the list of + daughters to a logical volume in the use-case when only the physical + volume store is cleared at run-time. + + notify removal of root-logical-volume from G4Region in case of + deletion of a logical-volume from the destructor, instead that from + DeRegister() method. + o GVPhysicalVolume: + + Added pointer to mother logical volume (will replace in future + releases the pointer to mother physical volume) and related accessors. + + Standardised registration mechanism as daughter for constructor using + the pointer to the mother's PV. + o G4PVPlacement/Replica/Parameterised: + + Standardised registration mechanism as daughter for constructor using + the pointer to the mother's PV. + o G4Region: + + Removed redundant calls to ScanVolumeTree() and UpdateMaterials() + from RemoveRootLogicalVolume() method. + o G4LogicalVolumeStore: + + removed redundant check and call to RemoveRootLogicalVolume() from + Clean() method. + o G4PhysicalVolumeStore: + + Added notification mechanism to logical volumes in the Clean() method + to update the list of daughters. + + Update mother's LV list of daughters when deregistering a volume. + - solids + o Made compilation of STEP and STEPinterface modules optional + controlled by variable G4LIB_BUILD_STEP/G4USE_STEP. + By default modules are not built. + o G4ReflectionFactory: + + Made public accessors: GetConstituentLV(), GetReflectedLV(), + IsConstituent() and IsReflected(). + + Added accessor GetReflectedVolumesMap() to access list of + reflected volumes. + + Added methods Set/GetScalePrecision(). + o G4BREPSolidPCone: + + Commented out verbose-mode in SurfaceNormal(). Temporary solution + to problem reports #425, #431 and #474. + - verification + o G4GeomTestVolume: + + Added methods TestRecursiveLine() and TestRecursiveCylinder() for + allowing recursion on line_test and cylinder_test respectively. + + Introduced ability to control depth and starting level of recursion. + - volumes + o G4GeometryMessenger: + + Added new commands for controlling geometry overlaps: added recursion + to line_test and cylinder_test; added possibility to customise the + resolution and shape of grid/cylinder for the test; added ability to + select depth of recursion in the geometry tree. + + Added explicit call to OpenGeometry() in method CheckGeometry() to + force cleanup of voxelisation when command navigator/reset is called. + o G4PropagatorInField: + + Implemented use of safety to reduce calls to navigator. + + Changed the default value of "maximum step count" from 10000 to 1000. + This will cause more particles to be recognised to loop earlier as + this parameter controls this behavior too. + + Added new method FindAndSetFieldManager() to find the current field + manager and set it for the Propagator. The class currently ensures + that this method is always called once for each call to ComputeStep(). + + Added new method SetDetectorFieldManager(), so as to have it updated + when the global field manager is changed. + o G4TransportationManager: + + corrected the method SetFieldManager(). It now messages the current + global PropagatorInField to notify it. + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Global: + ------ + - Define g4std wrappers and G4std to original STL headers and std + namespace. Removed usage of G4USE_STD_NAMESPACE macro. + - G4PhysicsVector: moved copy costructor and assignment operator to + public. Fixes problem report #486. + + o Hadronic Processes: + ------------------ + - Cleared most compilation warnings. + - cross_sections + + Design iteration. + + Fixed problem with electro-nuclear cross-sections. + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - management + + Added AddDataSet directly to the process interface + + Reimplementation of the registry to make it suitable for dynamic + loading of libraries. + + Fixed warning generated after migration from g4std. + - models/cascade/evaporation + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - models/chiral_inv_phase_space + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - models/generator/de_excitation + + Reimplemented Coulomb barrier in the GEM emission probabilities. + + Fixed floating-point exception observed in G4NuclearLevelManager. + + Improved mass calculation in G4VGammaDeexcitation. + + Introduced C++ casts. + + Reconfigured Fermi-break-up. + + Fixed case of floating-point exception in internal conversion. + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - models/generator/kinetic_model + + Improved transition between pre-equilibrium decay and binary cascade. + + Corrected dummy declaration of virtual function to allow porting + on WIN32 platforms. + - models/generator/pre_equilibrium + + Overall design iteration and re-implementation. + + Added GNASH transition probabilities as option. + + Added HETC emission probabilities as option. + + Re-work of alpha emission probabilities. + + Fixed compilation problem on WIN32 platforms. + - models/generator/scattering + + Fixed long-standing error on SUN dealing with ordering of static + construction. + + Fixed calculation of lower bound in sampling resonance masses + for multiple resonance final states. + - models/generator/util + + Extended nucleon interface to allow tracing during the cascading. + + Added fermi-momentum to G4Nucleon. + + Enabled hit-counting in G4Nucleon. + + Cleared printout on value of excitation energy. + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - models/low_energy + + Added re-coil creation and energy transfer calculation to elastic + scattering + + Bug fix for random coincidence exception in elastic scattering. + - models/neutron_hp + + Fixed usage of arguments to pow() for porting on .NET 7.1 compiler. + - models/radiative_decay + + Fix in G4ITDecayChannel and G4RadioactiveDecay for porting on + Windows .NET (WIN23-VC7) compiler: changed signature in + constructor for G4ITDecayChannel to use G4Ions instead of generic + G4ParticleDefinition. + - processes + + Implemented the AddDataSet interface in all process classes. + - stopping + + Fixed bug in alpha evaporation from nucleus observed when mu- stops + in air. + + Adopt trivial workaround to avoid "internal compiler error" on WIN32 + platforms. + + o Magnetic Field: + -------------- + - Revised G4FieldManager adding a (new) virtual method: + ConfigureForTrack( const G4Track *) + to enable the user to configure it with different accuracy parameters + depending on energy, particle id, volume, or other track state. + - Revised G4ChordFinder: + + FindNextChord() now provides next Step estimate (for accuracy + in Integration) + + Modified AdvanceChordLimited() to use FindNextChord() and + initial-step. + + Fixed missing initialisation of several member data in the simple + constructor and fixed unitialised variable for next step. + + Protected assignment of fLastStepEstimate_Unconstrained in case of + unitialised value. + - G4MagIntegratorDriver: + + Took out unneccessary square roots and divisions. + Giving 15% performance boost. + + Added extra argument for suggested initial step size 'hinitial' + to Accurate Advance. + + Keep simple statistics on number of steps, total error and step size. + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Materials: + --------- + - G4Isotope: fixed bug in operator=. Fixes problem report #429 + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Parameterisations: + ----------------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Particles: + --------- + - G4DynamicParticle.cc: + + Fix in constructors for the calculation of masses to avoid negative + values result of precision loss when massless particles + (like photons) are treated. Fixes problem report #489. + + Use condition m^2<0.001MeV^2 to identify massless particles. + + o Persistency: + ----------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Run, Events, Intercoms and Interfaces + ------------------------------------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + - G4UItokenNum.hh: fixed longstanding bug in the definition of the + struct "yystype": defined operator= and copy-constructor, defined + default constructor with default initialisation of members. + Fixes potential usage of uninitialised values. + - G4UIGainServer: fixed compilation problem on Darwin-g++ with gcc-3.X. + - G4VUserPhysicsList: added check for IsShortLived() before building the + physics table in BuildPhysicsTable(). + - G4RunManager: fixed case of removal of logical volume from default + region, when the whole geometry setup is cleared between runs. + + o Tracking & Track: + ---------------- + - Fixed copy operator of G4Track not to copy the pointer to user + information. + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Transportation: + -------------- + - G4Transportation: + o Use new method of PropagatorInField to simplify choice of + global/local field. + o Activated new capability of a (user derived) field manager to configure + itself with different accuracy parameters depending on track's energy, + particle identity, or other property. + o Fixes to accomodate incorrect and missing functionality for the + following use cases: + + setting of a local field when no global field exists. + + overriding of an existing global field with a 'zero' field + by creating a local field manager that has a NULL G4Field pointer. + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o Visualization: + ------------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + - OpenGL + + Added first implementation of G4OpenGLWin32Viewer for Windows GL. + + Fixes for porting compilation on WIN32. + + o g3tog4 tool: + ----------- + - Fixed compilation warnings on Linux-g++ for higher-lever diagnostics. + + o data + ---- + - New data set for low-energy EM processes: G4EMLOWEN2.2. + + o Examples: + -------- + - Updated reference outputs. + - Cleared most compilation warnings. + - advanced: + o brachytherapy + + Implementation revision. + o composite_calorimeter + + Updated physics lists. + o gammaray_telescope + + Updated to ANAPHE 5.0.5 and cuts-by-region. + o lAr_calorimeter + + Updated physics lists. + o Rich + + New application simulating the TestBeam setup of the Rich + detector in LHCb. + o Tiara + + New application implementing a simulation of the neutron + shielding experiment TIARA using importance biasing. + o underground_physics + + Fixes to physics list. + + Added HepRep visualization. + + Fixes to hits collection: fixed hits deposition on photocathode + material. + o xray_fluorescence + + Bug fixes for energy deposition in the detector. + - extended: + o analysis + + A01 + o Updated AIDA scripts. + + AnaEx01 + o Updated to AIDA 3.0. + o biasing + + Implementation revision. + o electromagnetic + + TestEm1, TestEm2, TestEm3 + o Corrected deletion of volumes/solids when geometry is updated. + + TestEm4 + o + + TestEm5 + o New histogram (ID=11) for the projeted angle at exit. + Bug corrected in gustep. + o New macros for multiple-scattering tests: run61,71,81,91 + o Proper deletion of old geometry when it is updated. + + TestEm6 + o + + TestEm7 + o New example simulating energy deposited by particles absorbed + in a given material (Bragg peak). + + TestEm8 + o Fixed warnings and changed input parameters for updated PAI. + o field + + Fixed geometry construction in case of switching of detector. + o geometry + + cad + o GNUmakefile: added control through G4USE_STEP variable. + o medical + + DICOM + o New application implementing a Geant4 interface to the DICOM + image format for the simulation of a phantom geometry. + o persistency + + Updates to README and scripts. + - novice + o N03 + + Properly delete volumes/solids when geometry is updated. + + Moved heprep.mac to visTutor. diff --git a/config/G4UI_BUILD.gmk b/config/G4UI_BUILD.gmk index 9a3ca6650c..2a878aa281 100644 --- a/config/G4UI_BUILD.gmk +++ b/config/G4UI_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4UI_BUILD.gmk,v 1.2 2001/08/11 22:36:47 johna Exp $ +# $Id: G4UI_BUILD.gmk,v 1.3 2003/06/11 13:18:56 gunter Exp $ # ------------------------------------------------------------- # Interfaces-specific CPPFLAGS for BUILD phase. # John Allison, 6th July 1998. @@ -50,5 +50,29 @@ endif ############################################################################ +ifdef G4LIB_BUILD_SHARED + + ifdef G4UI_BUILD_XM_SESSION + G4UI_USE_XM = 1 + endif + + ifdef G4UI_BUILD_XAW_SESSION + G4UI_USE_XAW = 1 + endif + + ifdef G4UI_BUILD_WIN32_SESSION + G4UI_USE_WIN32 = 1 + endif + + ########################### interfaces/OPACS ####################### + + ifdef G4UI_BUILD_WO_SESSION + G4UI_USE_WO = 1 + endif + + include $(G4INSTALL)/config/G4UI_USE.gmk + +endif # G4LIB_BUILD_SHARED + endif #G4UI_NONE diff --git a/config/G4UI_USE.gmk b/config/G4UI_USE.gmk index 53de081d03..835c38190d 100644 --- a/config/G4UI_USE.gmk +++ b/config/G4UI_USE.gmk @@ -1,10 +1,12 @@ -# $Id: G4UI_USE.gmk,v 1.6 2002/11/22 11:53:02 gcosmo Exp $ +# $Id: G4UI_USE.gmk,v 1.7 2003/06/11 13:18:56 gunter Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for interfaces USE phase. # John Allison, 6th July 1998. ########################### interfaces/basic ####################### - +ifndef G4UI_USE_INCLUDED + G4UI_USE_INCLUDED = 1 + ifndef G4UI_NONE UILIBS := @@ -95,3 +97,4 @@ ifndef G4UI_USE endif endif #G4UI_NONE +endif # G4UI_USE_INCLUDED diff --git a/config/G4VIS_BUILD.gmk b/config/G4VIS_BUILD.gmk index cd0c26f6ac..d437ec71ac 100644 --- a/config/G4VIS_BUILD.gmk +++ b/config/G4VIS_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_BUILD.gmk,v 1.11 2001/11/06 13:16:39 johna Exp $ +# $Id: G4VIS_BUILD.gmk,v 1.12 2003/06/11 13:18:56 gunter Exp $ # ------------------------------------------------------------- # Visualization-specific CPPFLAGS for BUILD phase. # John Allison, 24th January 1998. @@ -68,4 +68,50 @@ ifdef G4VIS_BUILD_VRML_DRIVER CPPFLAGS += -DG4VIS_BUILD_VRML_DRIVER endif +ifdef G4LIB_BUILD_SHARED +# build shared libs MUST resolve external libs at library build time + ifdef G4VIS_BUILD_DAWN_DRIVER + G4VIS_USE_DAWN = 1 + endif + + ifdef G4VIS_BUILD_OPACS_DRIVER + G4VIS_USE_OPACS = 1 + endif + + ifdef G4VIS_BUILD_OPENGLX_DRIVER + G4VIS_USE_OPENGLX = 1 + endif + + ifdef G4VIS_BUILD_OPENGLWIN32_DRIVER + G4VIS_USE_OPENGLWIN32 = 1 + endif + + ifdef G4VIS_BUILD_OPENGLXM_DRIVER + G4VIS_USE_OPENGLXM = 1 + endif + + ifdef G4VIS_BUILD_OPENGL_DRIVER + G4VIS_USE_OPENGL = 1 + endif + + ifdef G4VIS_BUILD_OIX_DRIVER + G4VIS_USE_OIX = 1 + endif + + ifdef G4VIS_BUILD_OIWIN32_DRIVER + G4VIS_USE_OIWIN32 = 1 + endif + + ifdef G4VIS_BUILD_OI_DRIVER + G4VIS_USE_OI = 1 + endif + + ifdef G4VIS_BUILD_VRML_DRIVER + G4VIS_USE_VRML = 1 + endif + +include $(G4INSTALL)/config/G4VIS_USE.gmk + +endif # G4LIB_BUILD_SHARED + endif #G4VIS_NONE diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index 1cce89336e..61cefbfd63 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -1,10 +1,13 @@ -# $Id: G4VIS_USE.gmk,v 1.14 2002/11/22 11:53:09 gcosmo Exp $ +# $Id: G4VIS_USE.gmk,v 1.16 2003/06/11 13:18:57 gunter Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for visualization USE phase. # John Allison, 24th January 1998. ifndef G4VIS_NONE +ifndef G4VIS_USE_INCLUDED +G4VIS_USE_INCLUDED = 1 + ifndef VISLIBS VISLIBS := endif @@ -106,15 +109,6 @@ endif G4VIS_USE = 1 CPPFLAGS += -DG4VIS_USE -ifdef G4_SOLVE_TEMPLATES - G4_SOLVE_VIS_TEMPLATES = 1 -endif -ifdef GNU_GCC - G4_SOLVE_VIS_TEMPLATES = 1 -endif -ifdef G4_SOLVE_VIS_TEMPLATES - CPPFLAGS += -DG4_SOLVE_VIS_TEMPLATES -endif ifneq ($(G4INCLUDE_EXEC),1) CPPFLAGS += -I$(G4BASE)/visualization/management/include CPPFLAGS += -I$(G4BASE)/visualization/modeling/include @@ -122,4 +116,5 @@ endif VISLIBS += -lG4vis_management VISLIBS += -lG4modeling +endif # G4VIS_USE_INCLUDED endif # G4VIS_NONE diff --git a/config/History b/config/History index 2519b39662..1c5f3c6b4c 100644 --- a/config/History +++ b/config/History @@ -1,5 +1,5 @@ -$Id: History,v 1.210 2003/01/22 18:02:21 gcosmo Exp $ -$Name: geant4-05-01 $ +$Id: History,v 1.218 2003/06/26 07:54:59 gcosmo Exp $ +$Name: geant4-05-02 $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,39 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +24th June 2003 Gabriele Cosmo (config-V05-01-05) +- Added UI32LIBS to interactivity.gmk to handle UI libraries on WIN32 + platforms. +- Added libraries for OpenGL and UI to default setup of WIN32-VC and + WIN32-VC7. Removed some obsolete compilation options. + +18th June 2003 Gabriele Cosmo (config-V05-01-04) +- Removed flag G4USE_STD_NAMESPACE from specific setups in sys. + Follows migration from G4std apported in source/global and whole code. + +16th June 2003 Gabriele Cosmo +- binmake.gmk: added module geometry/divisions in $INCFLAGS list. + +11th June 2003 Gunter Folger (config-V05-01-03) +- G4VIS_BUILD.gmk, G4VIS_USE.gmk, G4UI_BUILD.gmk, G4UI_USE.gmk, and + sys/{Linux-g++,SU-CC}.gmk: + When building shared libraries needing external libs like OpenGL..., + add these at shared library building, so these libs know about these + dependency and have this resolved. + +6th June 2003 Gabriele Cosmo (config-V05-01-02) +- architecture.gmk and specific setups in sys: get rid of G4_HAVE_BOOL + macro. Now using default 'bool' type, defined in all supported compilers. + +28th May 2003 Gabriele Cosmo (config-V05-01-01) +- architecture.gmk, binmake.gmk: added flags G4LIB_BUILD_STEP/G4USE_STEP + to make optional the compilation of the STEP library and interface module. + By default the libraries will not be built. + +31st March 2003 Gabriele Cosmo (config-V05-01-00) +- Added more strict compiler options for Linux-g++ platform. +- Removed obsolete usage of GNU_GCC specific option for g++ compilers. + 22nd January 2003 Gabriele Cosmo (config-V05-00-00) - Added experimental setup WIN32-VC7.gmk for Windows .NET VC++ compiler. - Generalised identification of WIN32 specific setups in core scripts. diff --git a/config/architecture.gmk b/config/architecture.gmk index 655f4cd5e1..ee6fc62a84 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.85 2003/01/22 18:02:02 gcosmo Exp $ +# $Id: architecture.gmk,v 1.87 2003/06/06 16:20:57 gcosmo Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -15,7 +15,7 @@ # # Linux-g++ Linux (Red Hat 7.3), gcc-2.95.2 or gcc-3.2 (default) # -# SUN-CC SunOS 5.8, CC 5.3 or 5.4 +# SUN-CC SunOS 5.8, CC 5.4 # # WIN32-VC Windows/2000/XP and Microsoft Visual C++ 6.0 - SP5 # Adding CYGWIN32 tools @@ -91,6 +91,14 @@ ifneq ($(G4LIB_BUILD_G3TOG4),) G4USE_G3TOG4 = 1 endif +# Specify if to build the STEP and STEinterface modules or not. +# Default is NO. +# +ifneq ($(G4LIB_BUILD_STEP),) + G4LIB_BUILD_STEP = 1 + G4USE_STEP = 1 +endif + # If not specified, the default path for G4 binaries G4BIN is # set to $G4WORKDIR/bin/$G4SYSTEM ... # @@ -264,12 +272,6 @@ GREP := grep # include $(G4INSTALL)/config/sys/$(G4SYSTEM).gmk -# If compiler recognises implicit C++ type bool... -# -ifdef G4_HAVE_BOOL - CPPFLAGS += -DG4_HAVE_BOOL -endif - # If there is no cbrt() function... # ifdef G4_NO_CBRT diff --git a/config/binmake.gmk b/config/binmake.gmk index 4a4a61828e..42618f2393 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.86 2003/01/22 18:02:03 gcosmo Exp $ +# $Id: binmake.gmk,v 1.88 2003/06/16 15:28:28 gcosmo Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -95,8 +95,7 @@ ifndef INCFLAGS -I$(G4BASE)/geometry/solids/specific/include \ -I$(G4BASE)/geometry/solids/BREPS/include \ -I$(G4BASE)/geometry/solids/Boolean/include \ - -I$(G4BASE)/geometry/solids/STEP/include \ - -I$(G4BASE)/geometry/solids/STEPinterface/include \ + -I$(G4BASE)/geometry/divisions/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/verification/include \ -I$(G4BASE)/geometry/magneticfield/include \ @@ -111,8 +110,12 @@ ifndef INCFLAGS -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include + ifdef G4USE_STEP + INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \ + -I$(G4BASE)/geometry/solids/STEPinterface/include + endif ifdef G4USE_G3TOG4 - INCFLAGS += -I$(G4BASE)/g3tog4/include + INCFLAGS += -I$(G4BASE)/g3tog4/include endif endif endif diff --git a/config/interactivity.gmk b/config/interactivity.gmk index 9851b2c561..f9a572045c 100644 --- a/config/interactivity.gmk +++ b/config/interactivity.gmk @@ -131,5 +131,6 @@ endif ifdef G4INTY_USE_WIN32 CPPFLAGS += -DG4INTY_USE_WIN32 + INTYLIBS += $(UI32LIBS) endif diff --git a/config/scripts/GNUmakefile b/config/scripts/GNUmakefile index ec6f4f39e8..615abf6a6e 100644 --- a/config/scripts/GNUmakefile +++ b/config/scripts/GNUmakefile @@ -1,6 +1,6 @@ -# $Id: GNUmakefile,v 1.2 2003/02/21 15:23:26 stesting Exp $ +# $Id: GNUmakefile,v 1.3 2003/05/28 08:03:22 gcosmo Exp $ # -------------------------------------------------------------- -# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. +# GNUmakefile for config scripts. Sergei Sadilov, 13/12/02. # -------------------------------------------------------------- name := Marker diff --git a/config/scripts/binmake.gmk b/config/scripts/binmake.gmk index 754c5c0ee4..c2a621b9eb 100644 --- a/config/scripts/binmake.gmk +++ b/config/scripts/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.2 2003/02/21 15:23:26 stesting Exp $ +# $Id: binmake.gmk,v 1.3 2003/05/28 08:03:22 gcosmo Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -95,8 +95,6 @@ ifndef INCFLAGS -I$(G4BASE)/geometry/solids/specific/include \ -I$(G4BASE)/geometry/solids/BREPS/include \ -I$(G4BASE)/geometry/solids/Boolean/include \ - -I$(G4BASE)/geometry/solids/STEP/include \ - -I$(G4BASE)/geometry/solids/STEPinterface/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/verification/include \ -I$(G4BASE)/geometry/magneticfield/include \ @@ -111,8 +109,12 @@ ifndef INCFLAGS -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include + ifdef G4USE_STEP + INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \ + -I$(G4BASE)/geometry/solids/STEPinterface/include + endif ifdef G4USE_G3TOG4 - INCFLAGS += -I$(G4BASE)/g3tog4/include + INCFLAGS += -I$(G4BASE)/g3tog4/include endif endif endif @@ -228,7 +230,7 @@ else endif LDLIBS_PREFINAL += $(LDLIBS4) -ifeq ($(G4SYSTEM),WIN32-VC) +ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) WIN32TMP := $(patsubst -L%,$(LIB_PATH)%,$(LDFLAGS)) LDFLAGS = $(patsubst /,$(PATH_DEL),$(WIN32TMP)) LDLIBS = $(patsubst -l%,lib%.a,$(LDLIBS_PREFINAL)) @@ -331,7 +333,7 @@ $(G4TMPDIR)/exe/$(G4TARGET).d: $(G4TARGET).cc @if [ ! -d $(G4TMPDIR)/exe ] ; then mkdir $(G4TMPDIR)/exe ;fi @echo Making dependency for file $<... @set -e;\ - g++ $(GPPFLAGS) $(CPPFLAGS) $< |\ + g++ $(GPPFLAGS) $(CPPFLAGS) -w $< |\ sed 's!$(G4TARGET)\.o!$(G4TMPDIR)/exe/& $@!' >$@;\ [ -s $@ ] || rm -f $@ ifneq ($(dependencies),) diff --git a/config/sys/AIX-xlC.gmk b/config/sys/AIX-xlC.gmk index 1418575c7c..30946b786a 100644 --- a/config/sys/AIX-xlC.gmk +++ b/config/sys/AIX-xlC.gmk @@ -28,8 +28,6 @@ ifeq ($(G4SYSTEM),AIX-xlC) ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/config/sys/DEC-cxx.gmk b/config/sys/DEC-cxx.gmk index a469cd3aec..a45fe5bf33 100644 --- a/config/sys/DEC-cxx.gmk +++ b/config/sys/DEC-cxx.gmk @@ -12,7 +12,6 @@ ifeq ($(G4SYSTEM),DEC-cxx) CCFLAGS := -g endif endif - G4_HAVE_BOOL := yes CXXFLAGS += -ieee -timplicit_local SHEXT := so #future G4RUNPATHOPTION := -rpath @@ -27,10 +26,7 @@ ifeq ($(G4SYSTEM),DEC-cxx) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL # OGLLIBS := -lMesaGLU -lMesaGL endif - CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) - G4USE_STD_NAMESPACE := yes CXXFLAGS += -std strict_ansi - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk index aa7a98d807..627cfaa9f2 100644 --- a/config/sys/Darwin-g++.gmk +++ b/config/sys/Darwin-g++.gmk @@ -12,8 +12,7 @@ ifeq ($(G4SYSTEM),Darwin-g++) # choice of GNU compilers: CXX := g++2 # CXX := g++3 - GNU_GCC = 1 - CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC + CXXFLAGS := -Wall -ansi -pedantic -pipe # optionally add verbose flag # CXXFLAGS += -v ifdef G4OPTIMISE @@ -58,8 +57,6 @@ ifeq ($(G4SYSTEM),Darwin-g++) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ diff --git a/config/sys/HP-aCC.gmk b/config/sys/HP-aCC.gmk index 50a10ebf37..078bc4bc51 100644 --- a/config/sys/HP-aCC.gmk +++ b/config/sys/HP-aCC.gmk @@ -19,7 +19,6 @@ ifeq ($(G4SYSTEM),HP-aCC) FCFLAGS += +Z CCFLAGS += +Z endif - G4_HAVE_BOOL := yes FC := f77 SHEXT := sl FCFLAGS += +E6 +ppu diff --git a/config/sys/Linux-egcs.gmk b/config/sys/Linux-egcs.gmk index 204b7655f0..6c31d4a921 100644 --- a/config/sys/Linux-egcs.gmk +++ b/config/sys/Linux-egcs.gmk @@ -3,8 +3,7 @@ # Red-Hat 6.1, egcs-1.1.2 (gcc-2.91.66) ifeq ($(G4SYSTEM),Linux-egcs) CXX := g++ - GNU_GCC = 1 - CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC + CXXFLAGS := -pipe ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O diff --git a/config/sys/Linux-g++.gmk b/config/sys/Linux-g++.gmk index ebbe97cfb1..a15d1baac0 100644 --- a/config/sys/Linux-g++.gmk +++ b/config/sys/Linux-g++.gmk @@ -1,11 +1,10 @@ # -# ------ GNU/LINUX ------ gcc 2.95.2 +# ------ GNU/LINUX ------ gcc 2.95.2 / gcc 3.2 # ifeq ($(G4SYSTEM),Linux-g++) CXX := g++ - GNU_GCC = 1 - CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC -# CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC + CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long + CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O @@ -46,17 +45,15 @@ ifeq ($(G4SYSTEM),Linux-g++) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ - $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) *.o + $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o endef define build-global-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) \ + $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \ $(foreach dir,$(SUBLIBS),$(dir)/*.o); endef diff --git a/config/sys/SGI-CC.gmk b/config/sys/SGI-CC.gmk index bf8e3124a9..e3b4fa49a7 100644 --- a/config/sys/SGI-CC.gmk +++ b/config/sys/SGI-CC.gmk @@ -12,7 +12,6 @@ ifeq ($(G4SYSTEM),SGI-CC) CCFLAGS := -g endif endif - G4_HAVE_BOOL := yes CXXFLAGS += -ptused FC := f77 FCLIBS := -lftn @@ -26,8 +25,7 @@ ifeq ($(G4SYSTEM),SGI-CC) ifndef OGLLIBS OGLLIBS := -L/usr/lib -lGLU -lGL endif - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DSOCKET_IRIX_SOLARIS -DG4USE_STD_NAMESPACE + CPPFLAGS += -DSOCKET_IRIX_SOLARIS define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/config/sys/SUN-CC.gmk b/config/sys/SUN-CC.gmk index 916f2ed219..c3d0766f50 100644 --- a/config/sys/SUN-CC.gmk +++ b/config/sys/SUN-CC.gmk @@ -19,7 +19,6 @@ ifeq ($(G4SYSTEM),SUN-CC) CCFLAGS += -KPIC endif G4RUNPATHOPTION := -R - G4_HAVE_BOOL := yes CFRONT_G4TEMPLATE_REPOSITORY := true FC := f77 SHEXT := so @@ -45,18 +44,16 @@ ifeq ($(G4SYSTEM),SUN-CC) CPPFLAGS += -DSOCKET_IRIX_SOLARIS LOADLIBS += -lsocket -lnsl CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ - $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) *.o + $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) $(INTYLIBS) *.o endef define build-global-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) \ + $(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) $(INTYLIBS) \ $(foreach dir,$(SUBLIBS),$(dir)/*.o); endef endif diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk index 16348b2b8c..2f80a80dfd 100644 --- a/config/sys/WIN32-VC.gmk +++ b/config/sys/WIN32-VC.gmk @@ -3,7 +3,6 @@ # ifeq ($(G4SYSTEM),WIN32-VC) CXX := CL - G4_HAVE_BOOL := yes ifdef G4OPTIMISE CXXFLAGS += -Ox else @@ -11,23 +10,9 @@ ifeq ($(G4SYSTEM),WIN32-VC) CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name) endif endif - CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 -D_CONSOLE - CXXFLAGS += -D_WIN32 -DOS + CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 CPPFLAGS += -DWIN32 - # - # Use ISO standard version. - # - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE - LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll - - # - # Should set $LIB environment to include VC++ Studio lib directories, e.g. - # - # $(LIB_PATH)"c:\ProgramFiles\DevStudio\vc\lib" \ - # $(LIB_PATH)'\\srv1_info\v2\vc50pro1\DEVSTUDIO\VC\LIB' \ - # $(LIB_PATH)'\\srv1_info\v2\DecFtn5\x86\df\lib' AR := LIB ECHO := echo -e @@ -37,7 +22,10 @@ ifeq ($(G4SYSTEM),WIN32-VC) OGLFLAGS := endif ifndef OGLLIBS - OGLLIBS := -lGLU -lGL + OGLLIBS := glu32.lib opengl32.lib + endif + ifndef UI32LIBS + UI32LIBS := gdi32.lib user32.lib endif define build-granular-shared-lib diff --git a/config/sys/WIN32-VC7.gmk b/config/sys/WIN32-VC7.gmk index fa585a35d7..350a029f3d 100644 --- a/config/sys/WIN32-VC7.gmk +++ b/config/sys/WIN32-VC7.gmk @@ -1,9 +1,8 @@ # -# ------ WIN32/VC ------ Visual-C++ 7.0 .NET -# experimental setup +# ------ WIN32/VC ------ Visual-C++ 7 .NET +# experimental setup ifeq ($(G4SYSTEM),WIN32-VC7) CXX := CL - G4_HAVE_BOOL := yes ifdef G4OPTIMISE CXXFLAGS += -Ox else @@ -11,15 +10,8 @@ ifeq ($(G4SYSTEM),WIN32-VC7) CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name) endif endif - CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 -D_CONSOLE - CXXFLAGS += -D_WIN32 -DOS + CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 CPPFLAGS += -DWIN32 -DXPNET - # - # Use ISO standard version. - # - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE - LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll AR := LIB @@ -30,7 +22,10 @@ ifeq ($(G4SYSTEM),WIN32-VC7) OGLFLAGS := endif ifndef OGLLIBS - OGLLIBS := -lGLU -lGL + OGLLIBS := glu32.lib opengl32.lib + endif + ifndef UI32LIBS + UI32LIBS := gdi32.lib user32.lib endif define build-granular-shared-lib diff --git a/config/sys/WIN32-g++.gmk b/config/sys/WIN32-g++.gmk index a750286c06..a907c781f2 100644 --- a/config/sys/WIN32-g++.gmk +++ b/config/sys/WIN32-g++.gmk @@ -1,14 +1,13 @@ # # ------ GNU/WIN32 CYGNUS ------ !!! not supported !!! -# Cygnus CygWin - gcc-2.95.3 -# Windows 2000 +# Cygnus CygWin - gcc-2.95.3, gcc-3.2 +# Windows 2000/XP # # Stefano Agostinelli (agos001@pn.itnet.it) - IST Group, Genova # ifeq ($(G4SYSTEM),WIN32-g++) CXX := g++ - GNU_GCC = 1 - CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC + CXXFLAGS := -Wall -ansi -pedantic -pipe ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O @@ -40,8 +39,6 @@ ifeq ($(G4SYSTEM),WIN32-g++) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/environments/OPACS/app/EXPO.cc b/environments/OPACS/app/EXPO.cc index bafe15bdfe..f4e9d8bc3d 100644 --- a/environments/OPACS/app/EXPO.cc +++ b/environments/OPACS/app/EXPO.cc @@ -22,7 +22,7 @@ // // // $Id: EXPO.cc,v 1.9 2001/07/11 09:56:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // #include diff --git a/environments/OPACS/app/TEST.cc b/environments/OPACS/app/TEST.cc index 4d7673da10..e1554a318b 100644 --- a/environments/OPACS/app/TEST.cc +++ b/environments/OPACS/app/TEST.cc @@ -22,7 +22,7 @@ // // // $Id: TEST.cc,v 1.4 2001/07/11 09:56:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // #include diff --git a/environments/OPACS/include/EXPO_Detector.icc b/environments/OPACS/include/EXPO_Detector.icc index 105e83c68f..50ee30ee68 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.4 2001/07/11 09:56:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // // See also G4/run/example/MyDetectorConstruction.cc. diff --git a/environments/OPACS/include/EXPO_PhysicsList.hh b/environments/OPACS/include/EXPO_PhysicsList.hh index f7852731cf..c3306f3104 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.5 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // // // ------------------------------------------------------------ diff --git a/environments/OPACS/include/EXPO_PhysicsList.icc b/environments/OPACS/include/EXPO_PhysicsList.icc index 582db02a57..0807357b0d 100644 --- a/environments/OPACS/include/EXPO_PhysicsList.icc +++ b/environments/OPACS/include/EXPO_PhysicsList.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO_PhysicsList.icc,v 1.5 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// $Id: EXPO_PhysicsList.icc,v 1.6 2003/06/16 16:44:50 gunter Exp $ +// GEANT4 tag $Name: geant4-05-02 $ // // // ------------------------------------------------------------ @@ -45,7 +45,7 @@ #include "G4Material.hh" #include "G4MaterialTable.hh" #include "G4ios.hh" -#include "g4std/iomanip" +#include EXPO_PhysicsList::EXPO_PhysicsList(): G4VUserPhysicsList() diff --git a/environments/OPACS/include/EXPO_Primary.icc b/environments/OPACS/include/EXPO_Primary.icc index fb4709b4b2..832a9de70c 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.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // // See also G4/run/example/EXPO_PrimaryGeneratorAction.cc. diff --git a/environments/OPACS/include/G4o.h b/environments/OPACS/include/G4o.h index 7f97c83f39..b73e392a54 100644 --- a/environments/OPACS/include/G4o.h +++ b/environments/OPACS/include/G4o.h @@ -22,7 +22,7 @@ // // // $Id: G4o.h,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 f3415e5d93..f9b33a2664 100644 --- a/environments/OPACS/include/G4oCommon.hh +++ b/environments/OPACS/include/G4oCommon.hh @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.hh,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* Included by G4o.h. diff --git a/environments/OPACS/include/G4oCommon.icc b/environments/OPACS/include/G4oCommon.icc index 43d1e16f68..f16057d4c4 100644 --- a/environments/OPACS/include/G4oCommon.icc +++ b/environments/OPACS/include/G4oCommon.icc @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* Included by G4o.cc. diff --git a/environments/OPACS/include/G4oDrawer.hh b/environments/OPACS/include/G4oDrawer.hh index 34104523bc..6b45e1e21c 100644 --- a/environments/OPACS/include/G4oDrawer.hh +++ b/environments/OPACS/include/G4oDrawer.hh @@ -22,7 +22,7 @@ // // // $Id: G4oDrawer.hh,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 cf6e8152f6..3fba0e085c 100644 --- a/environments/OPACS/include/G4oEXPO.h +++ b/environments/OPACS/include/G4oEXPO.h @@ -22,7 +22,7 @@ // // // $Id: G4oEXPO.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 386db4fe8c..1dafd2a9a3 100644 --- a/environments/OPACS/include/G4oScene.hh +++ b/environments/OPACS/include/G4oScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4oScene.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 223706d7a6..d8b53f1956 100644 --- a/environments/OPACS/include/G4oState.hh +++ b/environments/OPACS/include/G4oState.hh @@ -22,7 +22,7 @@ // // // $Id: G4oState.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4oState_h #define G4oState_h diff --git a/environments/OPACS/include/WoG4o.h b/environments/OPACS/include/WoG4o.h index 9b99e6631b..4f4db5fc0e 100644 --- a/environments/OPACS/include/WoG4o.h +++ b/environments/OPACS/include/WoG4o.h @@ -22,7 +22,7 @@ // // // $Id: WoG4o.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 29ef3107dc..9e9cb30b80 100644 --- a/environments/OPACS/src/G4o.cc +++ b/environments/OPACS/src/G4o.cc @@ -22,7 +22,7 @@ // // // $Id: G4o.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* #define DEBUG diff --git a/environments/OPACS/src/G4oDrawer.cc b/environments/OPACS/src/G4oDrawer.cc index 12b07aad90..40ffcf556f 100644 --- a/environments/OPACS/src/G4oDrawer.cc +++ b/environments/OPACS/src/G4oDrawer.cc @@ -22,7 +22,7 @@ // // // $Id: G4oDrawer.cc,v 1.7 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* From geant4/visualization/management/src/G4VisManager.cc. diff --git a/environments/OPACS/src/G4oScene.cc b/environments/OPACS/src/G4oScene.cc index a99891b4df..c3d7c85295 100644 --- a/environments/OPACS/src/G4oScene.cc +++ b/environments/OPACS/src/G4oScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4oScene.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // /* +---------------------- 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 595afa09ac..40f680994d 100644 --- a/environments/OPACS/src/G4oState.cc +++ b/environments/OPACS/src/G4oState.cc @@ -22,7 +22,7 @@ // // // $Id: G4oState.cc,v 1.8 2002/12/06 16:19:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-01 $ +// GEANT4 tag $Name: geant4-05-02 $ // //#define DEBUG diff --git a/examples/History b/examples/History index b8f696406f..a608be54dc 100644 --- a/examples/History +++ b/examples/History @@ -1,4 +1,4 @@ -$Id: History,v 1.68 2003/04/30 13:57:45 gcosmo Exp $ +$Id: History,v 1.70 2003/06/26 13:47:18 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,13 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +27th June 2003 Gabriele Cosmo (examples-V05-01-01) +- Updated reference outputs. +- Included fixes to GNUmakefiles for porting on Darwin in GDML example. + +30th May 2003 Gabriele Cosmo (examples-V05-01-00) +- Updated reference outputs. + 30th April 2003 Gabriele Cosmo (examples-V05-00-02) - Includes fixes/improvements part of release 5.1. - Updated reference outputs. diff --git a/examples/README b/examples/README index a93688fee4..d1498147e1 100644 --- a/examples/README +++ b/examples/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2003/02/27 19:30:05 gcosmo Exp $ +$Id: README,v 1.5 2003/06/06 14:56:31 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -48,6 +48,8 @@ Novice level examples - EM shower parametrisation ExampleN06 - Optical photon processes + ExampleN07 + - Regions and parameterised materials Extended level examples analysis @@ -86,6 +88,8 @@ Advanced level examples lAr_calorimeter - Simulation of the Liquid Argon Calorimeter of the ATLAS Detector at LHC. + Rich + - Rich Test Beam Simulation. underground_physics - Setup of an underground dark matter experiment. xray_fluorescence diff --git a/examples/advanced/GNUmakefile b/examples/advanced/GNUmakefile index 26054c3bda..5503375e61 100644 --- a/examples/advanced/GNUmakefile +++ b/examples/advanced/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2001/12/04 13:38:55 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2003/06/25 14:55:54 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -11,6 +11,7 @@ include $(G4INSTALL)/config/architecture.gmk SUBDIRS = brachytherapy gammaray_telescope underground_physics SUBDIRS += xray_fluorescence xray_telescope +SUBDIRS += Tiara Rich composite_calorimeter lAr_calorimeter .PHONY : all clean clean_libs diff --git a/examples/advanced/Rich/GNUmakefile b/examples/advanced/Rich/GNUmakefile new file mode 100644 index 0000000000..ba024c2c37 --- /dev/null +++ b/examples/advanced/Rich/GNUmakefile @@ -0,0 +1,45 @@ +# $Id: GNUmakefile,v 1.1 2003/05/26 13:02:50 pmendez Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := RichTbSim +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + + +include $(G4INSTALL)/config/architecture.gmk + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif +# +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + + + + + + + + + + + + diff --git a/examples/advanced/Rich/README b/examples/advanced/Rich/README new file mode 100644 index 0000000000..e6c6e5a4c5 --- /dev/null +++ b/examples/advanced/Rich/README @@ -0,0 +1,137 @@ + + ============================================================== + Geant4 - an Object-oriented Toolkit for Simulation HEP + ============================================================== + + Rich Detector for LHCb + ---------------------------------- + +This example is intended to simulate the TestBeam Setup of the Rich detector +at the LHCb to test the performance of the aerogel radiator. +The goal of the Rich is the proper identification of charged particles +in a momentum range of 1-150 GeV/c and to assist in the separation of +signal and background. + + +1. GEOMETRY DEFINITION +----------------------------- + +It consists on 2 detector; RICH1, RICH2 which have to cover +the full LHCb momentum range: + + RICH1: Aerogel 2 to 10 GeV/c + C4F10 < 70 GeV/c + + RICH2: CF4 < 150 GeV/c + + +The geometry (defined inside RichDetectorConstruction class) consists of +4 Hpd, a target containing the aerogel and a spherical mirror. +The TestbeamSetUp is related to changes in teils, distances between elements +of the testbeam and types. All the possible configurations are considered +by a loop inside the MaterialParameters class. + + +2. AN EVENT: THE PRIMARY GENERATOR +------------------------------------- + +The primary kinematic consists of a single charge particle (normally pions) +which is sent towards the target producing a rain of photons reflected and +focused by the spherical mirrors and recolected after in the Hpd. + +The aim of the testbeam is to perform resolutions measurements with +and without the aerogel to probe the improvement of its use. Comparisons +between simulation and data are performed to determine the angle defined +between the simmetry axis of the system (axis z) and the distance to the +interaction point of the produced photons in the Hpd. + +The information related to type of particles to be sent, their energy +and directions is included inside the PrimaryGeneratorAction class. +These parameters can be changed interactively using an extern macro +(run1.mac). It is recomended the use of such macro for changes because +it avoids further compilations. + +A RUN is a set of events. + + +3. VISUALIZATION +-------------------- + +The Visualization manager is set in the main(). +The Initialisation of the drawing is already defined in run1.mac. +The example is prepared to use any other visualization packages which +can be defined in such macro or inside RichTbVis0.mac. Before running +the events, the visualization must be initialized by: + +> /control/execute/RichTbVis0.mac + +The detector has longitudinal view of the geometry as default. + +The tracks are drawn at the end of event, and erased at the end of the run. + + +4. PHYSICS DEMO +---------------- + +The particles type and physics processes which will be available in +this example are set in PhysicsList class. + +In addition a built-in interactive command (process/inactivate proname) +allows to activate/inactivatethe processes one by one. + +5. HOW TO START? +----------------- + +- compile and link to generate an executable + % cd geant4/examples/advanced/Rich/ + % gmake + +- execute the program in 'batch' mode from macro files + % RichTbSim run1.mac + +- execute tests in 'interactive mode' + % RichTbSim + ..... + + Idle> type your commands + ..... + Idle> exit + + +6. HISTOGRAMS +--------------- + +This example produces 7 histograms (saved as rich.his generated automatically +during the running time) which illustrate the final state of the most important +information of the example: + + histo1 --> Number of Photon Hits per Track + histo2 --> Number of Photons before Mirror + histo3 --> WaveLength of Photons before Mirror + histo4 --> WaveLength of Photons after Mirror + histo5 --> Cherekov Angle at roduction all angles + histo6 --> Z of the Photon Emission Point + histo7 --> Cherenkov Ring Radius + +See their definition on AnalysisManager. + +Note that histograms are disabled via the flag G4ANALYSIS_USE in GNUmakefile. + + +7. USING THE LAST ANAPHE IMPLEMENTATION OF AIDA HISTOGRAMS +------------------------------------------------------------ + +In order to use the new Anaphe implementation of the AIDA interfaces +prepare some environment variables by source-ing one of the following +startup scripts: + +(THIS EXAMPLE HAS BEEN DEVELOPED AND TESTED WITH THE gcc-2.95.5 COMPILER) + +o Setup the environment variable: G4ANALYSIS_USE 1 +o setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat73/gcc-2.95.2/5.0.5/bin +o source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/install/sharedstart.csh +o ln -s /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts/* ~/bin/ (this has +to be done only once) + +After this, you will have access to the last 'aida-config' command +which is used in the GNUmakefile. \ No newline at end of file diff --git a/examples/advanced/Rich/RichTbSim.cc b/examples/advanced/Rich/RichTbSim.cc new file mode 100644 index 0000000000..2821abc3a3 --- /dev/null +++ b/examples/advanced/Rich/RichTbSim.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. * +// ******************************************************************** +// +// Rich Test Beam Simulation Main program +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +// ---------------------------------------------------------------- +#include +#include "RichTbRunAction.hh" +#include "RichTbEventAction.hh" +#include "RichTbDetectorConstruction.hh" +#include "RichTbPrimaryGeneratorAction.hh" +#include "RichTbStackingAction.hh" +#include "RichTbSteppingAction.hh" +#include "RichTbTrackingAction.hh" +#include "RichTbPhysicsList.hh" +#include "G4VPhysicalVolume.hh" +#include "G4RunManager.hh" +#include "RichTbRunConfig.hh" +#include "RichTbIOData.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" +#endif +#include "Randomize.hh" +#ifdef G4VIS_USE +#include "RichTbVisManager.hh" +#endif + +#include "G4ios.hh" +#include + + +int main(int argc,char** argv) { + + // Seed the random number generator manually + // ------------------------------------------ + + G4long myseed = 345354; + + HepRandom::setTheSeed(myseed); + + // Run manager + + G4RunManager * runManager = new G4RunManager; + //Job and Run options. + RichTbRunConfig* rConfig= new RichTbRunConfig(); + // Datafile streams for input and output + RichTbIOData* rIOData = new RichTbIOData( rConfig ); + RichTbDetectorConstruction* RichTbDet + = new RichTbDetectorConstruction(rConfig); + + runManager->SetUserInitialization(RichTbDet); + + RichTbPhysicsList* RichTbPhy + =new RichTbPhysicsList(rConfig); + + runManager-> SetUserInitialization(RichTbPhy); + + + +// UserAction classes - optional + + RichTbVisManager* visManager = new RichTbVisManager(); + visManager->SetVerboseLevel(0); + visManager->Initialize(); + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + cout<<" PVVisManager "<SetUserAction(new RichTbRunAction); + + RichTbPrimaryGeneratorAction* PrimaryGenAction = + new RichTbPrimaryGeneratorAction(RichTbDet); + + runManager->SetUserAction( PrimaryGenAction ); + + RichTbEventAction* eventAction= + new RichTbEventAction(rConfig,visManager, + rIOData); + + runManager->SetUserAction(eventAction); + + runManager->SetUserAction(new RichTbStackingAction); + + RichTbSteppingAction* StepAction= new RichTbSteppingAction(rConfig, PrimaryGenAction ); + runManager->SetUserAction(StepAction); + + runManager->SetUserAction(new RichTbTrackingAction); + + G4UImanager* UI = G4UImanager::GetUIpointer(); + + G4UIsession* session=0; + + //Initialize G4 kernel + runManager -> Initialize(); + + if(argc==1){ + + session = new G4UIterminal; + } + + if (session){ // Interactive mode + + UI->ApplyCommand("/run/verbose 0"); + UI->ApplyCommand("/event/verbose 0"); + UI->ApplyCommand("/tracking/verbose 0"); + UI->ApplyCommand("/particle/process/verbose 0"); + + session->SessionStart(); + delete session; + + } + else // Batch mode + { + G4UImanager * UI = G4UImanager::GetUIpointer(); + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } +#ifdef G4VIS_USE + delete visManager; +#endif + + G4cout << "\nVisManager deleted..\n" < /control/execute RichTbVis0.mac # +# # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, # +# DAWN (version 3.80 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 # +# % setenv G4VIS_BUILD_DAWNFILE_DRIVER 1 # +# # +# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # +# (See geant4/source/visualization/README for details.) # +# # +# % setenv G4VIS_USE_OPENGLX 1 # +# % setenv G4VIS_USE_DAWNFILE 1 # +# # +# Addional 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 # +# /vis/viewer/refresh # +# /vis/viewer/update # +# # +####################################################################### + +############################################## +# Visualization of detector geometry +# with the OGLIX (OpenGL Immediate X) driver +############################################## + +# Invoke the OGLIX driver +#/vis/open OGLIX + +# Set camera +# Note: Camera setting should be done +# for each scene handler. +/vis/camera/reset +/vis/scene/create +#/vis/sceneHandler/create OGLIX +#/vis/sceneHandler/create DAWNFILE +#/vis/sceneHandler/create OGLSXm +/vis/open DAWNFILE +/vis/open OGLIX +/vis/viewer/create +/vis/scene/add/volume +#/vis/camera/viewpoint 0 0 + +/vis/camera/viewpoint -90 -90 +#/vis/camera/viewpoint 270 0 +/vis/camera/zoom 0.8 +#/vis/camera/spin 20 10 + +# Visualize of the whole detector geometry +/vis/drawVolume +/vis/viewer/update + + + + + + + + + + + diff --git a/examples/advanced/Rich/include/AerogelRefData.hh b/examples/advanced/Rich/include/AerogelRefData.hh new file mode 100644 index 0000000000..14f2bbba38 --- /dev/null +++ b/examples/advanced/Rich/include/AerogelRefData.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// AerogelRefData.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef AerogelRefData_h +#define AerogelRefData_h 1 +#include "G4ios.hh" +#include "globals.hh" +#include +#include "AerogelTypeSpec.hh" + +class AerogelRefData { + +public: + + AerogelRefData(G4String AerogelRefInputFileName); + virtual ~AerogelRefData(); + + void ReadStdAerogelRefIndex(); + vector GetCurAerogelRefIndValueVect(G4int AerogelTypenum ); + G4double GetCurAerogelRefIndValue( G4int rbinw , G4int AerogelTypenum ); + G4double GetRefnominal(G4int); + AerogelType GetAerogelType(G4int); + G4int GetNumberOfRefIndBins() {return NumberOfRefIndBins; } + G4double GetAerogelRefphotE(G4int BinNumw ) + {return StdAerogelRefphotE[BinNumw]; } + G4double GetStdAerogelRefIndValue(G4int BinNumv ) + {return StdAerogelRefIndexValue[BinNumv];} + vector GetAerogelRefphotEVect() + { return StdAerogelRefphotE ; } + vector GetStdAerogelRefIndValueVect() + {return StdAerogelRefIndexValue ; } + + G4double GetAerogelRefIndShift(G4int iAgtype) + {return AerogelRefIndShift[iAgtype];} + G4double GetAerogelWavelengthRef(G4int jAgtype) + {return AerogelWavelengthRef[jAgtype]; } + G4double GetStdAgelRefIndexE(G4double RefEnergy ); + G4String GetAerogelRefIndexFileName() {return AerogelRefIndexFileName; } +private: + + G4String AerogelRefIndexFileName; + G4int NumberOfRefIndBins; + vectorStdAerogelRefphotE ; + vectorStdAerogelRefIndexValue ; + G4double StdAerogelNominalRefractiveIndex; + vector AerogelRefIndShift; + vector AerogelWavelengthRef; +}; + +#endif + diff --git a/examples/advanced/Rich/include/AerogelTypeSpec.hh b/examples/advanced/Rich/include/AerogelTypeSpec.hh new file mode 100644 index 0000000000..60d356e799 --- /dev/null +++ b/examples/advanced/Rich/include/AerogelTypeSpec.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// AerogelTypeSpec.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef AerogelTypeSpec_h +#define AerogelTypeSpec_h 1 +// different types of Aerogels. +static const G4int MaxNumberOfAerogelTiles=5; +static const G4int MaxNumberOfAerogelTypes=5; +enum AerogelType{AerogelTypeA,AerogelTypeB,AerogelTypeC,AerogelTypeD, + AerogelTypeE}; +static const G4String AerogelTypeString[]={"AerogelTypeA","AerogelTypeB", + "AerogelTypeC","AerogelTypeD", + "AerogelTypeE"}; +// Type A has dimensions 7*8*4 cm +// In the G4Example only 1 type is used. In the LHCb implementation +// there are 5 types of aerogel. +// In the G4Example only 1 tile is implemented. In the LHCb +// implementation upto 5 tiles are allowed. +#endif diff --git a/examples/advanced/Rich/include/FilterTrData.hh b/examples/advanced/Rich/include/FilterTrData.hh new file mode 100644 index 0000000000..e2d93fe173 --- /dev/null +++ b/examples/advanced/Rich/include/FilterTrData.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// FilterTrData.chh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef FilterTrData_h +#define FilterTrData_h 1 +#include "G4ios.hh" +#include "globals.hh" +#include +#include "FilterTypeSpec.hh" + +class FilterTrData { + +public: + FilterTrData(G4int , G4String ); + virtual ~FilterTrData(); + + G4double GetCurrentFilTrans(G4double); + G4double GetTotFilTrans(G4double); + + void ReadFilterTrans(); + G4int GetNumberofBins() {return NumberOfTrBins; } + G4double GetCurTransWL(G4int BinNumw ) {return TransWaveL[BinNumw]; } + G4double GetCurTransValue(G4int BinNumv ) {return TransValue[BinNumv];} + G4double GetCurTransTotValue(G4int BinNumv ) {return TransTotValue[BinNumv];} + + G4double GetCurFilterThickness() {return FilterThickness; } + vector GetTransWL() { return TransWaveL ; } + vector GetTransValue() {return TransValue ; } + vector GetTransTotValue() {return TransTotValue ; } + FilterType GetFilterTypeIndex() {return FilterTypeIndex ; } + +private: + + FilterType FilterTypeIndex; + G4int FilterTypeNumber; + G4int NumberOfTrBins; + G4double FilterThickness; + G4double FilterRefIndexNominal; + vectorTransWaveL ; + vectorTransValue ; + vectorTransTotValue; + G4double CurNeighbourRefIndexNominal; + G4String FilterTransDataFileName; + +}; + +#endif diff --git a/examples/advanced/Rich/include/FilterTypeSpec.hh b/examples/advanced/Rich/include/FilterTypeSpec.hh new file mode 100644 index 0000000000..85a2d467a9 --- /dev/null +++ b/examples/advanced/Rich/include/FilterTypeSpec.hh @@ -0,0 +1,38 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// FilterTypeSpec.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef FilterTypeSpec_h +#define FilterTypeSpec_h 1 +// different types of filters. +static const G4int MaxNumberOfFilterTypes=1; +enum FilterType{GlassD263}; +static const G4String FilterTypeString[]={"GlassD263"}; +// +// in the G4Example only 1 type of filter used. In the +// LHCb implementation several types of filters used. +#endif diff --git a/examples/advanced/Rich/include/HpdSiEnergyLoss.hh b/examples/advanced/Rich/include/HpdSiEnergyLoss.hh new file mode 100644 index 0000000000..1afddfd88d --- /dev/null +++ b/examples/advanced/Rich/include/HpdSiEnergyLoss.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// HpdSiEnergyLoss.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef HpdSiEnergyLoss_h +#define HpdSiEnergyLoss_h 1 +#include "globals.hh" +#include "G4VEnergyLoss.hh" +#include "G4VParticleChange.hh" +#include "G4DynamicParticle.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" + +class HpdSiEnergyLoss : public G4VEnergyLoss +{ +public: + + HpdSiEnergyLoss(const G4String& materialName , + const G4String& processName); + + + virtual ~HpdSiEnergyLoss(); + + G4bool IsApplicable(const G4ParticleDefinition&); + // true for all charged particles + G4double GetContinuousStepLimit(const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety); + G4VParticleChange* AlongStepDoIt(const G4Track& aTrack, + const G4Step& aStep) ; + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep); +private: + + // hide assignment and copy operators + HpdSiEnergyLoss ( HpdSiEnergyLoss &); + HpdSiEnergyLoss & operator=(const HpdSiEnergyLoss &right); + + //now the data members + G4int fMatIndex; + G4double MinKineticEnergy ; + G4double MipEnergy; + G4double finalRangeforStep; + G4String ElossMaterialName; + +}; +#endif + + + diff --git a/examples/advanced/Rich/include/PadHpdPhotoElectricEffect.hh b/examples/advanced/Rich/include/PadHpdPhotoElectricEffect.hh new file mode 100644 index 0000000000..044b9c7c1f --- /dev/null +++ b/examples/advanced/Rich/include/PadHpdPhotoElectricEffect.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// PadHpdPhotoElectricEffect.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef PadHpdPhotoElectricEffect_h +#define PadHpdPhotoElectricEffect_h 1 +#include "G4ios.hh" +#include "globals.hh" +#include "Randomize.hh" +#include "G4VDiscreteProcess.hh" +#include "G4PhotoElectricEffect.hh" +#include "G4DynamicParticle.hh" +#include "G4OpticalPhoton.hh" +#include "G4Electron.hh" +#include "G4Step.hh" +#include "RichTbMaterialParameters.hh" +class RichTbAnalysisManager; +class RichTbRunConfig; + +class PadHpdPhotoElectricEffect : public G4VDiscreteProcess { +public: + + PadHpdPhotoElectricEffect(const G4String&,RichTbRunConfig* ); + virtual ~PadHpdPhotoElectricEffect(); + + G4bool IsApplicable(const G4ParticleDefinition& ); + // is applicable for optical photon only + + G4double GetMeanFreePath(const G4Track& , + G4double , + G4ForceCondition* condition); + //returns infinity (max integer possible) . This means the process does + // not limit the step, but sets the Forced condition for the DoIt to be + // invoked at every step. But only at the boundary between Hpd quartz + // window and the Hpd photocathode any action be taken. + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep); + //The method for implementing the HpdPhotoelectric effect. + + + G4double getHpdQEff(G4int, G4double); + // To interpolate the QE from QE data. + G4double getHpdPhElectronKE() + {return HpdPhElectronKE; } + G4double getPhCathodeToSilDetDist() + {return PhCathodeToSilDetDist; } + G4double getHpdDemag(G4int hpdnum) {return DemagnificationFactor[hpdnum]; } + private: + // RichTbAnalysisManager* rAnalysisPhy; + RichTbRunConfig* rConfig; + G4String PrePhotoElectricVolName; + G4String PostPhotoElectricVolName; + G4double HpdPhElectronKE; + G4double PhCathodeToSilDetDist; + G4double PSFsigma; + vectorDemagnificationFactor; + vectorDemagnificationQuadFactor; + vector >HpdQE; + vector >HpdWabin; + +}; + +#endif diff --git a/examples/advanced/Rich/include/RichTbAnalysisManager.hh b/examples/advanced/Rich/include/RichTbAnalysisManager.hh new file mode 100644 index 0000000000..d5e2368ca1 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbAnalysisManager.hh @@ -0,0 +1,199 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbAnalysisManager.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbAnalysisManager_h +#define RichTbAnalysisManager_h 1 + +#include "globals.hh" +#include +#include "G4ThreeVector.hh" + + + +#ifdef G4ANALYSIS_USE +#include "AIDA/AIDA.h" +#endif +#include "RichTbAnalysisMessenger.hh" + +class G4Step; + +#ifdef G4ANALYSIS_USE +namespace AIDA{ + class IAnalysisFactory; + class IHistogramFactory; + class ITree; + class ITupleFactory; + class ITuple; +} +#endif + +class G4Run; +class G4Event; +class G4Step; +class G4Timer; + +class G4SteppingManager; +class RichTbRunConfig; + +class RichTbAnalysisManager{ +public: + + RichTbAnalysisManager(); + virtual ~RichTbAnalysisManager(); + +#ifdef G4ANALYSIS_USE + + void book(); + void finish(); + + static RichTbAnalysisManager* getInstance(); + void SetOutputFileName(G4String); + + + + + +#endif + + + + void BeginOfRunAnalysis(); + void EndOfRunAnalysis(); + void BeginOfEventAnalysis(const G4Event*); + void EndOfEventAnalysis(const G4Event*); + void StepAnalysis(const G4SteppingManager* ); + + void bumpNumPhotonsBeforeAerogel() { NumPhotBeforeAerogel++ ; } + G4int getNumPhotBeforeAerogel() {return NumPhotBeforeAerogel; } + + void bumpNumPhotonsAfterFilter(){ NumPhotAfterFilter++ ; } + G4int getNumPhotAfterFilter() {return NumPhotAfterFilter ; } + void bumpNumPhotonsBeforeFilter(){ NumPhotBeforeFilter++ ; } + G4int getNumPhotBeforeFilter() {return NumPhotBeforeFilter ; } + void bumpNumPhotonsBeforeMirror(){ NumPhotBeforeMirror++ ; } + G4int getNumPhotBeforeMirror() {return NumPhotBeforeMirror ; } + + void bumpNumPhotonsAfterMirror(){ NumPhotAfterMirror++ ; } + G4int getNumPhotAfterMirror() {return NumPhotAfterMirror ; } + + void bumpNumPhotonsAtHpd1Input(){ NumPhotAtHpd1Input++ ; } + G4int getNumPhotAtHpd1Input() {return NumPhotAtHpd1Input ; } + void bumpNumPhotonsAtHpd2Input(){ NumPhotAtHpd2Input++ ; } + G4int getNumPhotAtHpd2Input() {return NumPhotAtHpd2Input ; } + void bumpNumPhotonsAtHpd3Input(){ NumPhotAtHpd3Input++ ; } + G4int getNumPhotAtHpd3Input() {return NumPhotAtHpd3Input ; } + void bumpNumPhotonsAtHpd4Input(){ NumPhotAtHpd4Input++ ; } + G4int getNumPhotAtHpd4Input() {return NumPhotAtHpd4Input ; } + void bumpNumHitInSi(){ NumHitInSi++ ; } + G4int getNumHitInSi() {return NumHitInSi ; } + G4double getMeanHXCoord() {return MeanHXCoord ; } + G4double getMeanHYCoord() {return MeanHYCoord ; } + G4double getNumHXCoord() {return NumHXCoord ; } + G4double getNumHYCoord() {return NumHYCoord ; } + void setMeanHXCoord(G4double cx ); + void setMeanHYCoord(G4double cy ); + +public: + + G4String outputFileName; + + static RichTbAnalysisManager* instance; + +#ifdef G4ANALYSIS_USE + + RichTbAnalysisMessenger* analisysMessenger; + + AIDA::IAnalysisFactory* analysisFactory; + AIDA::ITree* tree; + AIDA::IHistogramFactory* histogramFactory; + +#endif + + AIDA::IHistogram1D* getfhistoNPhotG() {return fhistoNrPhotG;} + AIDA::IHistogram1D* getfhistoNBeforeMirror() {return fhistoNBeforeMirror;} + AIDA::IHistogram1D* getfhistoWBeforeMirror() {return fhistoWBeforeMirror;} + AIDA::IHistogram1D* getfhistoWAfterMirror() {return fhistoWAfterMirror;} + + + + + AIDA::IHistogram1D* getfhistoCkvProdSmall() {return fhistoCkvProdSmall;} + AIDA::IHistogram1D* getfhistoEmisZ() {return fhistoEmisZ;} + + AIDA::IHistogram1D* getfhistoCkvRadius() {return fhistoCkvRadius; } + + public: + +#ifdef G4ANALYSIS_USE + + AIDA::IHistogram1D* fhistoNrPhotG; + AIDA::IHistogram1D* fhistoNBeforeMirror; + AIDA::IHistogram1D* fhistoWBeforeMirror; + AIDA::IHistogram1D* fhistoWAfterMirror; + AIDA::IHistogram1D* fhistoCkvProdSmall; + AIDA::IHistogram1D* fhistoEmisZ; + AIDA::IHistogram1D* fhistoCkvRadius; + +#endif + + G4Timer* iTimer; + + + + G4int NumPhotBeforeAerogel; + G4int NumPhotBeforeMirror; + G4int NumPhotBeforeFilter; + G4int NumPhotAfterFilter; + G4int NumPhotAtHpd1Input; + G4int NumPhotAtHpd2Input; + G4int NumPhotAtHpd3Input; + G4int NumPhotAtHpd4Input; + G4int NumPhotAfterMirror; + G4int NumHitTotInHpd1; + G4int NumHitTotInHpd2; + G4int NumHitTotInHpd3; + G4int NumHitTotInHpd4; + G4int NumHitInSi; + RichTbRunConfig* rConfig; + G4double MeanHXCoord; + G4double MeanHYCoord; + G4double NumHXCoord; + G4double NumHYCoord; + + + +}; + + +#endif + + + + + + diff --git a/examples/advanced/Rich/include/RichTbAnalysisMessenger.hh b/examples/advanced/Rich/include/RichTbAnalysisMessenger.hh new file mode 100644 index 0000000000..c45f06d76a --- /dev/null +++ b/examples/advanced/Rich/include/RichTbAnalysisMessenger.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbAnalysisMessenger.hh for Rich of LHCb +// History: +// Created: Patricia Mendez (Patricia.Mendez@cern.ch) +//////////////////////////////////////////////////////////////////////////// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifdef G4ANALYSIS_USE +#ifndef RichTbAnalysisMessenger_h +#define RichTbAnalysisMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + + +class RichTbAnalysisManager; +class G4UIdirectory; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +class G4UIcmdWithAString; +class RichTbAnalysisMessenger: public G4UImessenger + +{ +public: + RichTbAnalysisMessenger(RichTbAnalysisManager* ); + ~RichTbAnalysisMessenger(); + + + +private: + + //pointer to RichTbAnalysisManager + RichTbAnalysisManager* richAnalysis; + G4UIdirectory* RichTbAnalysisDir; + G4UIcmdWithAString* ouputFileCommand; + +}; +#endif +#endif + + diff --git a/examples/advanced/Rich/include/RichTbComponent.hh b/examples/advanced/Rich/include/RichTbComponent.hh new file mode 100644 index 0000000000..f885fde6bb --- /dev/null +++ b/examples/advanced/Rich/include/RichTbComponent.hh @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbComponent.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbComponent_h +#define RichTbComponent_h 1 + +#include "globals.hh" +#include +#include "RichTbMaterial.hh" +#include "RichTbHall.hh" +#include "RichTbRunConfig.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "AerogelTypeSpec.hh" +#include "G4LogicalBorderSurface.hh" +class RichTbComponent { + +public: + + RichTbComponent(); + RichTbComponent(RichTbMaterial*,RichTbHall*, RichTbRunConfig*,G4bool); + virtual ~RichTbComponent(); + + G4LogicalVolume* getEnclosureLogicalVolume() + {return RichTbEnclosureLVol;} + + G4VPhysicalVolume* getEnclosurePhysicalVolume() + {return RichTbEnclosurePVol;} + + G4LogicalVolume* getMirrorLogicalVolume() + {return RichTbMirrorLVol;} + + G4VPhysicalVolume* getMirrorPhysicalVolume() + {return RichTbMirrorPVol;} + + G4LogicalBorderSurface* getMirrorSurface() + {return RichTbMirrorBSurf; } + + G4LogicalVolume* getRadFrameLogicalVolume() + {return RichTbRadFrameLVol;} + + G4VPhysicalVolume* getRadFramePhysicalVolume() + {return RichTbRadFramePVol;} + + G4LogicalVolume* getRadUpWLogicalVolume() + {return RichTbRadUpWLVol;} + + G4VPhysicalVolume* getRadUpWPhysicalVolume() + {return RichTbRadUpWPVol;} + + G4LogicalVolume* getRadDnWLogicalVolume() + {return RichTbRadDnWLVol;} + + G4VPhysicalVolume* getRadDnWPhysicalVolume() + {return RichTbRadDnWPVol;} + + + G4int getNumAerogelTiles() {return NumAerogelTiles; } + + G4LogicalVolume* getAgelLogicalVolume(G4int Agelnum) + {return RichTbAgelLVol[Agelnum];} + + G4VPhysicalVolume* getAgelPhysicalVolume(G4int Agelnumber) + {return RichTbAgelPVol[Agelnumber];} + + G4LogicalVolume* getAgelWrapTopLogicalVolume(G4int Agelnum) + {return RichTbAgelWrapTopLVol[Agelnum];} + + G4VPhysicalVolume* getAgelWrapTopPhysicalVolume(G4int Agelnumber) + {return RichTbAgelWrapTopPVol[Agelnumber];} + + G4LogicalVolume* getAgelWrapBotLogicalVolume(G4int Agelnum) + {return RichTbAgelWrapBotLVol[Agelnum];} + + G4VPhysicalVolume* getAgelWrapBotPhysicalVolume(G4int Agelnumber) + {return RichTbAgelWrapBotPVol[Agelnumber];} + + G4LogicalVolume* getFilterLogicalVolume() + {return RichTbFilterLVol;} + + G4VPhysicalVolume* getFilterPhysicalVolume() + {return RichTbFilterPVol;} + + +private: + + G4LogicalVolume* RichTbEnclosureLVol; + G4VPhysicalVolume* RichTbEnclosurePVol; + G4LogicalBorderSurface* RichTbEnclosureOuterBSurf; + G4LogicalBorderSurface* RichTbEnclosureInnerBSurf; + G4LogicalVolume* RichTbMirrorLVol; + G4VPhysicalVolume* RichTbMirrorPVol; + G4LogicalBorderSurface* RichTbMirrorBSurf; + G4LogicalVolume* RichTbRadFrameLVol; + G4VPhysicalVolume* RichTbRadFramePVol; + G4LogicalVolume* RichTbRadUpWLVol; + G4VPhysicalVolume* RichTbRadUpWPVol; + G4LogicalVolume* RichTbRadDnWLVol; + G4VPhysicalVolume* RichTbRadDnWPVol; + G4int NumAerogelTiles; + vector RichTbAgelLVol; + vector RichTbAgelPVol; + vector RichTbAgelWrapTopLVol; + vector RichTbAgelWrapTopPVol; + vector RichTbAgelWrapBotLVol; + vector RichTbAgelWrapBotPVol; + G4LogicalVolume* RichTbFilterLVol; + G4VPhysicalVolume* RichTbFilterPVol; + G4bool ConstructTrackingGeometrySwitch; + +}; + +#endif diff --git a/examples/advanced/Rich/include/RichTbDetectorConstruction.hh b/examples/advanced/Rich/include/RichTbDetectorConstruction.hh new file mode 100644 index 0000000000..4e9bd03a62 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbDetectorConstruction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbDetectorConstruction.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// + +#ifndef RichTbDetectorConstruction_h +#define RichTbDetectorConstruction_h 1 + +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbHall.hh" +#include "RichTbComponent.hh" +#include "RichTbPhotoDetector.hh" +#include "RichTbGraphics.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbRunConfig.hh" +#include "RichTbROGeometry.hh" +#include "RichTbAnalysisManager.hh" +class RichTbDetectorConstruction: + public G4VUserDetectorConstruction{ + + public: + RichTbDetectorConstruction(); + + RichTbDetectorConstruction(RichTbRunConfig*); + virtual ~RichTbDetectorConstruction(); + G4VPhysicalVolume* Construct(); + RichTbMaterial* getRichTbMaterial() + {return rMaterial; } + RichTbHall* getRichTbHall() + {return rTbHall; } + RichTbComponent* getRichTbComponent() + {return rTbComponent; } + RichTbPhotoDetector* getRichTbPhotoDetector() + {return rTbPhotoDetector; } + RichTbGraphics* getRichTbGraphcis() + {return rTbGraphics; } + RichTbROGeometry* getROGeometry() + {return rTbROGeom; } + private: + + RichTbRunConfig* runConfiguration; + RichTbMaterial* rMaterial; + RichTbHall* rTbHall; + RichTbComponent* rTbComponent; + RichTbPhotoDetector* rTbPhotoDetector; + RichTbGraphics* rTbGraphics; + RichTbROGeometry* rTbROGeom; + + +}; + +#endif + + + + diff --git a/examples/advanced/Rich/include/RichTbEventAction.hh b/examples/advanced/Rich/include/RichTbEventAction.hh new file mode 100644 index 0000000000..59b1406e9b --- /dev/null +++ b/examples/advanced/Rich/include/RichTbEventAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbEventAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbEventAction_h +#define RichTbEventAction_h 1 +#include "G4UserEventAction.hh" +#include "G4ThreeVector.hh" +#include "RichTbRunConfig.hh" +#include "RichTbAnalysisManager.hh" + +class G4Event; +class RichTbVisManager; +class RichTbAnalysisManager; +class RichTbIOData; + +class RichTbEventAction : public G4UserEventAction { + + public: + RichTbEventAction(); + + RichTbEventAction(RichTbRunConfig* , + RichTbVisManager* , RichTbIOData* ); + virtual ~RichTbEventAction(); +public: + void BeginOfEventAction(const G4Event* ); + void EndOfEventAction(const G4Event* ); + G4int GetRichCollID() {return RichTbCollID;}; + RichTbAnalysisManager* getAnalysisM() + {return ranalysisManager; } + RichTbVisManager* getVisM() + {return pVisManager; } + private: + RichTbRunConfig* runConfiguration; + G4int RichTbCollID; + RichTbAnalysisManager* ranalysisManager; + RichTbVisManager* pVisManager; + RichTbIOData* rTbIOData; + +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbGeometryParameters.hh b/examples/advanced/Rich/include/RichTbGeometryParameters.hh new file mode 100644 index 0000000000..bbe0508243 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbGeometryParameters.hh @@ -0,0 +1,392 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbGeometryParameters.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbGeometryParameters_h +#define RichTbGeometryParameters_h 1 + +#include "globals.hh" +#include "AerogelTypeSpec.hh" +#include +extern void InitializeRichTbGeometry(); +extern G4double GetCurAerogelLength(G4int); +// +// +static const G4double sqroot3=pow(3.0,0.5); + +//Size of the LHCb Rich Testbeam Hall. +static const G4double ExpHallHalfX=4000.0*mm; +static const G4double ExpHallHalfY=4000.0*mm; +static const G4double ExpHallHalfZ=8000.0*mm; +// The Hall is kept at the orgin of the coord system. +// The coord system has +z along the beam direction and +y +// going upwards. +// +//Now for the Vessel +static const G4double VesselInnerRad=0.0*mm; +static const G4double VesselOuterRad=275.0*mm; +static const G4double VesselHalfZ=540.0*mm; +static const G4double VesselStartPhi=0.0*rad; +static const G4double VesselDelPhi=twopi*rad; +static const G4double VesselPosX=0.0*mm; +static const G4double VesselPosY=0.0*mm; +static const G4double VesselPosZ=VesselHalfZ; + +//Now for the box containing the aerogel sample. +static const G4double RadFrameHalfX=55.0*mm; +static const G4double RadFrameHalfY=55.0*mm; +static const G4double RadFrameHalfZ=55.0*mm; +static const G4double RadFramePosX=0.0*mm; +static const G4double RadFramePosY=0.0*mm; +//The following are the Z positons of start of the radiator frame +// and aerogel tiles. +static const G4double RadFrameGenStartZ=185.0*mm; +static const G4double AgelTileGenStartZ=190.0*mm; +static const G4double RadFramePosZ= + RadFrameGenStartZ+RadFrameHalfZ-VesselHalfZ; +// Now for the aerogel blocks. They are made to start at 190mm from the +// upstream edge of the box. +// The following are dimensioned to MaxNumberOfAerogelTiles which +// from the AerogelTypeSpec.hh file +// +//Now for the window of the radframe at its upstream and downstream +// ends. +// +static const G4double RadHoldUpHalfX=50.0*mm; +static const G4double RadHoldUpHalfY=50.0*mm; +static const G4double RadHoldUpHalfZ=1.0*mm; +static const G4double RadHoldUpPosX=0.0*mm; +static const G4double RadHoldUpPosY=0.0*mm; +static const G4double RadHoldUpPosZ=-RadFrameHalfZ+ RadHoldUpHalfZ; +static const G4double RadWinUpOuterRad=40.0*mm; +static const G4double RadWinUpInnerRad=0.0*mm; +static const G4double RadWinUpHalfZ= RadHoldUpHalfZ+5.0*mm; +static const G4double RadWinUpStartPhi=0.0*rad; +static const G4double RadWinUpDelPhi=twopi*rad; +static const G4double RadWinUpShiftX=0.0*mm; +static const G4double RadWinUpShiftY=0.0*mm; +static const G4double RadWinUpShiftZ=0.0*mm; +// +static const G4double RadHoldDnHalfX=50.0*mm; +static const G4double RadHoldDnHalfY=50.0*mm; +static const G4double RadHoldDnHalfZ=1.0*mm; +static const G4double RadHoldDnPosX=0.0*mm; +static const G4double RadHoldDnPosY=0.0*mm; +static const G4double RadHoldDnShiftZ=15.0*mm; +static const G4double RadHoldDnPosZ=RadFrameHalfZ- + RadHoldDnShiftZ- RadHoldDnHalfZ; +static const G4double RadWinDnOuterRad=40.0*mm; +static const G4double RadWinDnInnerRad=0.0*mm; +static const G4double RadWinDnHalfZ= RadHoldDnHalfZ+5.0*mm; +static const G4double RadWinDnStartPhi=0.0*rad; +static const G4double RadWinDnDelPhi=twopi*rad; +static const G4double RadWinDnShiftX=0.0*mm; +static const G4double RadWinDnShiftY=0.0*mm; +static const G4double RadWinDnShiftZ=0.0*mm; +// the following three variables are for each of the aerogel types. +// In the G4example only 1 type is simply repeated 5 times. +static const G4double AgelHalfX[]={35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm}; +static const G4double AgelHalfY[]={40.0*mm,40.0*mm,40.0*mm,40.0*mm,40.0*mm}; +static const G4double AgelHalfZ[]={20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm}; +// The following 2 variables are for each tile. +// for now no shifts forseen in the XY direction. +static const G4double AgelPosX[]={0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm}; +static const G4double AgelPosY[]={0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm}; +static const G4double AgelStartZ= + AgelTileGenStartZ-RadFrameGenStartZ-RadFrameHalfZ; +static const G4double TotalAgelThickness=80.0*mm; +static const G4double AgelTileGapZ=1.0*mm; +static const G4double AgelEndZ= AgelStartZ+TotalAgelThickness+AgelTileGapZ; + + +//Now for the wraps above and below the aerogel tiles. +static const G4double AgelWrapTopHalfX[]= + {35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm}; +static const G4double AgelWrapTopHalfY[]= + {1.0*mm,1.0*mm,1.0*mm,1.0*mm,1.0*mm}; +static const G4double AgelWrapTopHalfZ[]= + {20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm}; + +static const G4double AgelWrapTopPosX[]= + {0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm}; + +static const G4double AgelWrapBotHalfX[]= + {35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm}; +static const G4double AgelWrapBotHalfY[]= + {1.0*mm,1.0*mm,1.0*mm,1.0*mm,1.0*mm}; +static const G4double AgelWrapBotHalfZ[]= + {20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm}; + +static const G4double AgelWrapBotPosX[]= + {0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm}; +// in the G4Example only 1 type of filter is used. +static const G4double FilterHalfX=53.0*mm; +static const G4double FilterHalfY=53.0*mm; +static const G4double GlassD263HalfZ=0.15*mm; +static const G4double FilterHalfZArray[]={GlassD263HalfZ, GlassD263HalfZ, + GlassD263HalfZ, GlassD263HalfZ, GlassD263HalfZ, GlassD263HalfZ }; +// have a nominal value for the filter thickness. +static const G4double FilterHalfZNominal= GlassD263HalfZ; +static const G4double FilterPosX=0.0*mm; +static const G4double FilterPosY=0.0*mm; +//gap between aerogel and Filter in Z. +static const G4double FilterAgelGapZ=2.5*mm; +//nominal value for the Filter position +static const G4double FilterPosZNominal= + AgelEndZ+FilterAgelGapZ+ FilterHalfZNominal; +//Now for the mirror +// +static const G4double MirrorRInner=1185.0*mm; +static const G4double MirrorROuter=1191.0*mm; +static const G4double MirrorHorizontalChord=350.0*mm; +static const G4double MirrorVerticalChord=290.0*mm; +// the following is 600+117+6 mm. +// here 121 is the hpd Q window outer Z and 6 is the +// thickness of the mirror +// static const G4double MirrorShiftFromEnd=707.0*mm; +static const G4double MirrorShiftFromEnd=723.0*mm; +static const G4double MirrorNominalPosZ=MirrorShiftFromEnd-VesselHalfZ + -MirrorRInner; +static const G4double MirrorNominalRotX=0.0*rad; +static const G4double MirrorNominalRotY=0.0*rad; + +//Now for each of the HPDs. +// First the size of each part. +static const G4double HpdMasterRad=64.00*mm; +//static const G4double HpdMasterHalfZ=55.0*mm; +static const G4double HpdMasterHalfZ=60.0*mm; +static const G4double HpdEnvelopeLargeTubeInnerRad=58.5*mm; +static const G4double HpdEnvelopeLargeTubeOuterRad=63.5*mm; +//static const G4double HpdEnvelopeLargeTubeHalfZ=8.73*mm; +static const G4double HpdEnvelopeLargeTubeHalfZ=11.0*mm; +static const G4double HpdEnvelopeConeHalfZ=20.0*mm; +static const G4double HpdEnvelopeSmallTubeHalfZ=10.0*mm; +static const G4double HpdEnvelopeSmallTubeInnerRad=35.0*mm; +static const G4double HpdEnvelopeSmallTubeOuterRad=40.0*mm; +static const G4double HpdEnvelopeConeOuterR2=HpdEnvelopeLargeTubeOuterRad; +static const G4double HpdEnvelopeConeInnerR2=HpdEnvelopeLargeTubeInnerRad; +static const G4double HpdEnvelopeConeOuterR1=HpdEnvelopeSmallTubeOuterRad; +static const G4double HpdEnvelopeConeInnerR1=HpdEnvelopeSmallTubeInnerRad; +// +static const G4double HpdEnvelopeEndCapRad=HpdEnvelopeSmallTubeOuterRad; +static const G4double HpdEnvelopeEndCapHalfZ=2.5*mm; +static const G4double HpdQuartzWindowThickness=4.0*mm; +static const G4double HpdQuarzWindowROuter=100.0*mm; +static const G4double HpdQuarzWindowRInner= HpdQuarzWindowROuter + -HpdQuartzWindowThickness; +static const G4double PhotoCathodeThickness=0.00004*mm; +static const G4double HpdPhCathodeROuter= HpdQuarzWindowRInner; +static const G4double HpdPhCathodeRInner= + HpdQuarzWindowRInner - PhotoCathodeThickness; +// The following obtained by arcsin(63.5/100) +static const G4double HpdQuartzWThetaSize=0.6880*rad; +// The following obtained by arcsin(57/(100-4)) +static const G4double HpdPhCathodeThetaSize=0.6357*rad; + +// For defining cylinders and spherical segment.. +static const G4double HpdMasterInnerRad=0.0*mm; +static const G4double HpdMasterStartPhi=0.0*rad; +static const G4double HpdMasterEndPhi=twopi*rad; + +static const G4double HpdEnvelopeLargeTubeStartPhi=0.0*rad; +static const G4double HpdEnvelopeLargeTubeEndPhi=twopi*rad; + +static const G4double HpdEnvelopeConeStartPhi=0.0*rad; +static const G4double HpdEnvelopeConeEndPhi=twopi*rad; + + +static const G4double HpdEnvelopeSmallTubeStartPhi=0.0*rad; +static const G4double HpdEnvelopeSmallTubeEndPhi=twopi*rad; + +static const G4double HpdEnvelopeEndCapInnerRad=0.0*mm; +static const G4double HpdEnvelopeEndCapStartPhi=0.0*rad; +static const G4double HpdEnvelopeEndCapEndPhi=twopi*rad; + +static const G4double HpdQuartzWPhiSize=twopi*rad; +static const G4double HpdQuartzWStartTheta=0.0*rad; +static const G4double HpdQuartzWStartPhi=0.0*rad; +static const G4double HpdPhCathodePhiSize=twopi*rad; +static const G4double HpdPhCathodeStartTheta=0.0*rad; +static const G4double HpdPhCathodeStartPhi=0.0*rad; +// Z locations of the various parts. +static const G4double HpdQuartzPartFromEndZ=4.0*mm; +//static const G4double HpdEnvelopePartFromEndZ=18.0*mm; +// The following obtained by requiring 100-sqrt(100*100-63.5*63.5)=22.75 +// for the quartz region in Z. The total is 22.75+4+4=30.75. +static const G4double HpdEnvelopePartFromEndZ=30.75*mm; +static const G4double HpdPhotoCathodeSiZdist=100.0*mm; + + +//Silicon detector inside the HPD +static const G4int NumberOfSiDetSectors=16; +// Now for each one of the sector. +// In the following the 0.0001 is to avoid graphics from crashing +// for zero length of a triangle made from a trapozoid. + +static const G4double SiSectAngSize=(22.5*pi/180)*rad; +static const G4double SiSectAngHalfSize=SiSectAngSize/2.0; +static const G4double SiSectHeight=25.0*mm; +static const G4double SiSectSide= SiSectHeight/cos(SiSectAngHalfSize); +static const G4double SiSectHalfMoonGap=0.0*mm; +static const G4double SiSectTrapHalfY1=0.15*mm; // halfthickness of Si. +static const G4double SiSectTrapHalfY2= SiSectTrapHalfY1; +static const G4double SiSectTrapHalfX1=0.0001*mm; +static const G4double SiSectTrapHalfX2 = SiSectHeight*tan(SiSectAngHalfSize); +static const G4double SiSectTrapHalfZ = SiSectHeight/2.0 ; +static const G4double SiSectRotX=(90*pi/180)*rad; +static const G4double SiSectAngStart=(pi/2.0)*rad-SiSectAngSize/2.0; +// SiSectPosX and SiSectPosY are calculated in the cc file. +static const G4double SiSectPosZ= + HpdMasterHalfZ-HpdQuartzPartFromEndZ- + HpdQuartzWindowThickness-HpdPhotoCathodeSiZdist; +// +// +//Now for the coating on the Silicon surface. +static const G4double SiSectCoatingAngSize=SiSectAngSize; +static const G4double SiSectCoatingAngHalfSize=SiSectAngSize/2.0; +static const G4double SiSectCoatingSide=SiSectSide; +static const G4double SiSectCoatingHalfMoonGap=SiSectHalfMoonGap; +static const G4double SiSectCoatingTrapHalfY1=0.05*mm; // SiCoating HalfThick. +static const G4double SiSectCoatingTrapHalfY2= SiSectCoatingTrapHalfY1; +static const G4double SiSectCoatingTrapHalfX1= SiSectTrapHalfX1; +static const G4double SiSectCoatingTrapHalfX2= SiSectTrapHalfX2; +static const G4double SiSectCoatingTrapHalfZ= SiSectTrapHalfZ; +static const G4double SiSectCoatingRotX=SiSectRotX; +static const G4double SiSectCoatingAngStart=SiSectAngStart; +// SiSectCoatingPosX and SiSectCoatingPosY are calculated in the cc file. +static const G4double SiSectCoatingPosZ = + SiSectPosZ + SiSectTrapHalfY1+SiSectCoatingTrapHalfY1; +// +// +static const G4double XsizePix=1.0*mm; +static const G4double YsizePix=1.0*mm; +static const G4double YsizeBigPix=2.0*mm; +// the number of the big pixel in the pixel map on the web=59, hence +// in the c++ array 58 since the array start from 0. +static const G4int BigPixelNum=58; +//Silicon pixels inside the Silicon detector. +static const G4double SiPixelHalfY= SiSectTrapHalfY1; +static const G4double SiPixelHalfX= XsizePix/2.0; +static const G4double SiPixelHalfZ= YsizePix/2.0; +// now for the big pixel at the centre of the hpd. +static const G4double SiBigPixelHalfZ=YsizeBigPix/2.0; +//Now for their relative locations +static const G4double HpdEnvelopeLargeTubePosX=0.0*mm; +static const G4double HpdEnvelopeLargeTubePosY=0.0*mm; +static const G4double HpdEnvelopeLargeTubePosZ= + HpdMasterHalfZ-HpdEnvelopePartFromEndZ-HpdEnvelopeLargeTubeHalfZ; + +static const G4double HpdEnvelopeConeShiftX=0.0*mm; +static const G4double HpdEnvelopeConeShiftY=0.0*mm; +static const G4double HpdEnvelopeConeShiftZ= + -(HpdEnvelopeLargeTubeHalfZ+HpdEnvelopeConeHalfZ); + +static const G4double HpdEnvelopeSmallTubeShiftX=0.0*mm; +static const G4double HpdEnvelopeSmallTubeShiftY=0.0*mm; +static const G4double HpdEnvelopeSmallTubeShiftZ= + -(HpdEnvelopeLargeTubeHalfZ+2*HpdEnvelopeConeHalfZ+ + HpdEnvelopeSmallTubeHalfZ); +static const G4double HpdEnvelopeEndCapShiftX=0.0*mm; +static const G4double HpdEnvelopeEndCapShiftY=0.0*mm; +static const G4double HpdEnvelopeEndCapShiftZ= +-(HpdEnvelopeLargeTubeHalfZ+2*HpdEnvelopeConeHalfZ+ + 2*HpdEnvelopeSmallTubeHalfZ+HpdEnvelopeEndCapHalfZ); + +static const G4double HpdQuartzWPosX=0.0*mm; +static const G4double HpdQuartzWPosY=0.0*mm; +static const G4double HpdQuartzWPosZ= + HpdMasterHalfZ- HpdQuartzPartFromEndZ-HpdQuarzWindowROuter; + +static const G4double HpdPhCathodePosX=0.0*mm; +static const G4double HpdPhCathodePosY=0.0*mm; +static const G4double HpdPhCathodePosZ= HpdQuartzWPosZ; + + +//Placement of the Hpd Si pixels in the Hpd Si Sector. +static const G4int NumberOfPadHpdSiPixels=128; +static const G4int MaxNumberOfPixRow=24; +static const G4int MaxNumberOfPixCol=10; +static G4double PixRowNumSect[NumberOfPadHpdSiPixels]; +static G4double PixColNumSect[NumberOfPadHpdSiPixels]; +static G4bool PixelAtSectEdge[NumberOfPadHpdSiPixels]; +// the following is for the rows after the central big pixel. +// the central pixel is at row 0. +// the others start from row number start at 1. +// the following is 1 mm in the current setup. +static const G4double RowInitPointBigPixel= SiSectTrapHalfZ*2.0 + -(MaxNumberOfPixRow-1) * YsizePix + - YsizeBigPix/2.0; +// the following is 1.5 mm in the current setup. +static const G4double RowInitPoint= SiSectTrapHalfZ*2.0 + -(MaxNumberOfPixRow-1) * YsizePix + - YsizePix/2.0; +//The follwing two variables are defined in the cc file for this +//include file as part of the class declared below. Since the +// Si det plane is in the XZ plane, a swap of Y->Z and Z->Y is done +// while positioning the Si Pixel. +static const G4double HpdSiPixPosZ=0.0*mm; +#ifndef RichTbPadHpdSiPixPos_h +#define RichTbPadHpdSiPixPos_h 1 +class RichTbPadHpdSiPixPos{ +public: + RichTbPadHpdSiPixPos(G4int); + virtual ~RichTbPadHpdSiPixPos(); + G4double getPadHpdSiPixPosX() {return PadHpdSiPixPosX;} + G4double getPadHpdSiPixPosY() {return PadHpdSiPixPosY;} + G4double getCurrentPixelnum(){return icurpixel;} +private: +G4double PadHpdSiPixPosX; +G4double PadHpdSiPixPosY; +G4int icurpixel; +}; +#endif + +//Placement of all the HPDs. + +static const G4int NumberOfHpds=4; +static const G4double HpdPosRad=146.5*mm; +static const G4double HpdZfromEnd=HpdMasterHalfZ-VesselPosZ+1.0*mm;; + +static const G4double HpdMasterPosX[NumberOfHpds]= + {HpdPosRad,0.0*mm,-HpdPosRad,0.0*mm}; +static const G4double HpdMasterPosY[NumberOfHpds]= + {0.0*mm,-HpdPosRad,0.0*mm,HpdPosRad}; +static const G4double HpdMasterPosZ[NumberOfHpds]= + {HpdZfromEnd,HpdZfromEnd,HpdZfromEnd,HpdZfromEnd}; +//rot1 version of hpd rotations. +static const G4double HpdMasterRotZ[NumberOfHpds]= + {0.0*rad,(69.5*pi/180.0)*rad,(22.5*pi/180.0)*rad,(7.5*pi/180.0)*rad}; +// +// +#endif + + + + + + + diff --git a/examples/advanced/Rich/include/RichTbGraphics.hh b/examples/advanced/Rich/include/RichTbGraphics.hh new file mode 100644 index 0000000000..0b77953b18 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbGraphics.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbGraphics.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbGraphics_h +#define RichTbGraphics_h 1 + +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbHall.hh" +#include "RichTbComponent.hh" +#include "RichTbPhotoDetector.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbROGeometry.hh" + +class RichTbGraphics { + +public: + + RichTbGraphics(); + RichTbGraphics(RichTbHall*, RichTbComponent*, RichTbPhotoDetector*, + RichTbROGeometry*, RichTbRunConfig* ); + virtual ~RichTbGraphics(); + +private: + +}; + +#endif diff --git a/examples/advanced/Rich/include/RichTbHall.hh b/examples/advanced/Rich/include/RichTbHall.hh new file mode 100644 index 0000000000..80a4c64350 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbHall.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHall.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbHall_h +#define RichTbHall_h 1 + +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +class RichTbHall { + +public: + RichTbHall(); + RichTbHall(RichTbMaterial*); + virtual ~RichTbHall(); + G4LogicalVolume* getRichTbHallLogicalVolume() + {return RichTbHallLVol;} + G4VPhysicalVolume* getRichTbHallPhysicalVolume() + {return RichTbHallPVol;} + +private: + + G4LogicalVolume* RichTbHallLVol; + G4VPhysicalVolume* RichTbHallPVol; + + +}; + +#endif diff --git a/examples/advanced/Rich/include/RichTbHit.hh b/examples/advanced/Rich/include/RichTbHit.hh new file mode 100644 index 0000000000..110f0c7b99 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbHit.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHit.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbHit_h +#define RichTbHit_h 1 +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" + +class RichTbVisManager; +class RichTbHit : public G4VHit +{ + public: + + RichTbHit(); + virtual ~RichTbHit(); + RichTbHit(const RichTbHit &right); + const RichTbHit& operator=(const RichTbHit &right); + int operator==(const RichTbHit &right) const; + + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + void DrawWithVisM(RichTbVisManager*); + void Print(); + + private: + G4double edep; + G4ThreeVector posAtSilicon; + G4ThreeVector posAtPhotoCathode; + G4int CurHpdNum; + G4int CurSectNum; + G4int CurPixelNum; + public: + inline void SetEdep(G4double de) { edep = de; }; + inline G4double GetEdep() { return edep; }; + inline void SetPos(G4ThreeVector xyz) { posAtSilicon = xyz; }; + inline G4ThreeVector GetPos() { return posAtSilicon; }; + inline void SetPosPC(G4ThreeVector xyzPC) { posAtPhotoCathode = xyzPC; }; + inline G4ThreeVector GetPosPC() { return posAtPhotoCathode; }; + inline void SetCurHpdNum (G4int ihp ) { CurHpdNum = ihp; } ; + inline G4int GetCurHpdNum() { return CurHpdNum ; }; + inline void SetCurSectNum (G4int isector ) { CurSectNum = isector; } ; + inline G4int GetCurSectNum() { return CurSectNum ; }; + inline void SetCurPixNum (G4int ipx ) { CurPixelNum = ipx; }; + inline G4int GetCurPixNum() { return CurPixelNum; }; + inline void AddEdep( G4double addenergy ) { edep += addenergy; } +}; + +typedef G4THitsCollection RichTbHitsCollection; + +extern G4Allocator RichTbHitAllocator; + +inline void* RichTbHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) RichTbHitAllocator.MallocSingle(); + return aHit; +} + +inline void RichTbHit::operator delete(void *aHit) +{ + RichTbHitAllocator.FreeSingle((RichTbHit*) aHit); +} + + + +#endif + + + + diff --git a/examples/advanced/Rich/include/RichTbHpd.hh b/examples/advanced/Rich/include/RichTbHpd.hh new file mode 100644 index 0000000000..d5ec88439d --- /dev/null +++ b/examples/advanced/Rich/include/RichTbHpd.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHpd.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbHpd_h +#define RichTbHpd_h 1 +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbGeometryParameters.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbSiDet.hh" +#include "RichTbSD.hh" +class RichTbHpd { + +public: + + RichTbHpd(); + virtual ~RichTbHpd(); + RichTbHpd(RichTbMaterial*, G4VPhysicalVolume * ,G4int, G4int,G4bool); + + G4LogicalVolume* getHpdLogicalVolume() + {return RichTbHpdLVol;} + G4VPhysicalVolume* getHpdPhysicalVolume() + {return RichTbHpdPVol;} + G4LogicalVolume* getHpdEnvelopeTubeGrandLogicalVolume() + {return RichTbHpdEnvelopeTubeGrandLVol;} + G4VPhysicalVolume* getHpdEnvelopeTubeGrandPhysicalVolume() + {return RichTbHpdEnvelopeTubeGrandPVol;} + G4LogicalVolume* getHpdQuartzWLogicalVolume() + {return RichTbHpdQuartzWLVol;} + G4VPhysicalVolume* getHpdQuartzWPhysicalVolume() + {return RichTbHpdQuartzWPVol;} + G4LogicalVolume* getHpdPhCathodeLogicalVolume() + {return RichTbPhCathodeLVol;} + G4VPhysicalVolume* getHpdPhCathodePhysicalVolume() + {return RichTbPhCathodePVol;} + G4int getHpdNum(){return HpdNumber;} + G4int getNumSectInHpd() {return NumSectInHpd;} + RichTbSiDet* getRichHpdSiDetSect(G4int isect) + {return richSiliconDetectorSect[isect];} + +private: + G4int HpdNumber; + RichTbSD* aHpdSD; + G4LogicalVolume* RichTbHpdLVol; + G4VPhysicalVolume* RichTbHpdPVol; + G4LogicalVolume* RichTbHpdEnvelopeTubeGrandLVol; + G4VPhysicalVolume* RichTbHpdEnvelopeTubeGrandPVol; + G4LogicalVolume* RichTbHpdQuartzWLVol; + G4VPhysicalVolume* RichTbHpdQuartzWPVol; + G4LogicalVolume* RichTbPhCathodeLVol; + G4VPhysicalVolume* RichTbPhCathodePVol; + RichTbSiDet* richSiliconDetectorSect[NumberOfSiDetSectors]; + G4int NumSectInHpd; + G4bool ConstructTrackGeomSwitch; +}; +#endif + + + + diff --git a/examples/advanced/Rich/include/RichTbIOData.hh b/examples/advanced/Rich/include/RichTbIOData.hh new file mode 100644 index 0000000000..510b969594 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbIOData.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbIOData.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbIOData_h +#define RichTbIOData_h 1 +#include "globals.hh" +#include +#include +#include "RichTbRunConfig.hh" +#include "G4Event.hh" +class RichTbIOData { + +public: + + RichTbIOData(RichTbRunConfig* ); + virtual ~RichTbIOData(); + void WriteOutEventHeaderData(const G4Event* ); + void WriteOutHitData(const G4Event* ); + +private: + ofstream OutputDataFS; + G4String aOutFileString; +}; +#endif + diff --git a/examples/advanced/Rich/include/RichTbMaterial.hh b/examples/advanced/Rich/include/RichTbMaterial.hh new file mode 100644 index 0000000000..65d3fb0c3d --- /dev/null +++ b/examples/advanced/Rich/include/RichTbMaterial.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbMaterial.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// + +#ifndef RichTbMaterial_h +#define RichTbMaterial_h 1 +#include "globals.hh" +#include +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4OpticalSurface.hh" +#include "RichTbRunConfig.hh" +#include "AerogelTypeSpec.hh" + +class RichTbMaterial { + +public: + RichTbMaterial(); + + RichTbMaterial(RichTbRunConfig*); + virtual ~RichTbMaterial(); + G4double ConvertAgelRIndex(G4double,G4int); + G4Material* getAir() {return RichTbAmbientAir;} + G4Material* getTAir() {return RichTbTubeAir;} + G4Material* getNitrogenGas() {return RichTbNitrogenGas;} + G4Material* getH2O() {return RichTbH2O;} + G4Material* getMirrorQuartz() {return RichTbMirrorQuartz;} + G4Material* getQuartzWMaterial() {return RichTbQuartzWindowMaterial;} + G4Material* getHpdQuartzWMaterial() {return HpdQuartzWindowMaterial;} + G4Material* getPadHpdQuartzWMaterial() {return PadHpdQuartzWindowMaterial;} + G4Material* getRichTbFilterMaterial(G4int FilterTNum ) + {return RichTbFilterMaterial[FilterTNum] ; } + G4Material* getGlassD263FilterMaterial() {return GlassD263FilterMaterial;} + G4Material* getAerogelMaterial(G4int AgelNum ) + {return RichTbAerogelMaterial[AgelNum]; } + G4Material* getAerogelTypeA() {return RichTbAerogelTypeA; } + G4Material* getAerogelTypeB() {return RichTbAerogelTypeB; } + G4Material* getAerogelTypeC() {return RichTbAerogelTypeC; } + G4Material* getAerogelTypeD() {return RichTbAerogelTypeD; } + G4Material* getAerogelTypeE() {return RichTbAerogelTypeE; } + G4Material* getC4F10() {return RichTbC4F10; } + G4Material* getCF4() {return RichTbCF4; } + G4Material* getVacuum() {return RichTbVacuum;} + G4Material* getAluminium() {return RichTbAluminium; } + G4Material* getHpdTubeMaterial() {return HpdTubeMaterial; } + G4Material* getHpdSiDetMaterial() {return HpdSiDetMaterial;} + G4Material* getHpdSiCoatingMaterial() {return HpdSiCoatingMaterial;} + G4Material* getPadHpdPhCathodeMaterial() {return PadHpdPhCathodeMaterial;} + + G4Material* getPlasticAg() {return RichTbPlasticAg;} + G4OpticalSurface* getOpticalMirrorSurface() + {return RichTbOpticalMirrorSurface; } + G4OpticalSurface* getOpticalEnclosureSurface() + {return RichTbOpticalEnclosureSurface; } + G4OpticalSurface* getOpticalGasQuartzWSurface() + {return RichTbOpticalGasQuartzWSurface; } + G4OpticalSurface* getOpticalHpdMetalSurface() + {return RichTbOpticalHpdMetalSurface;} + G4OpticalSurface* getOpticalHpdTQuartzWSurface() + {return HpdTQuartzWSurface; } + G4OpticalSurface* getOpticalHpdQuartzWPhCathodeSurface() + {return HpdQuartzWPhCathodeSurface; } + G4OpticalSurface* getOpticalPhCathodeSkinSurface() + {return PhCathodeSkinSurface; } + G4OpticalSurface* getOpticalPhCathodeBorderSurface() + {return PhCathodeBorderSurface; } + G4OpticalSurface* getOpticalFilterSurface() + {return RichTbOpticalFilterSurface; } + G4OpticalSurface* getHpdSiCoatSurface() + {return HpdSiCoatSurface; } + +private: + G4Material* RichTbAmbientAir; + G4Material* RichTbTubeAir; + G4Material* RichTbNitrogenGas; + G4Material* RichTbH2O; + G4Material* RichTbMirrorQuartz; + G4Material* RichTbQuartzWindowMaterial; + vector RichTbAerogelMaterial; + + G4Material* RichTbAerogelTypeA; + G4Material* RichTbAerogelTypeB; + G4Material* RichTbAerogelTypeC; + G4Material* RichTbAerogelTypeD; + G4Material* RichTbAerogelTypeE; + G4Material* RichTbC4F10; + G4Material* RichTbCF4; + G4Material* RichTbVacuum; + G4Material* RichTbAluminium; + G4Material* HpdTubeMaterial; + G4Material* HpdSiDetMaterial; + G4Material* HpdSiCoatingMaterial; + G4Material* HpdQuartzWindowMaterial; + G4Material* PadHpdQuartzWindowMaterial; + + vector RichTbFilterMaterial; + G4Material* GlassD263FilterMaterial; + G4Material* PadHpdPhCathodeMaterial; + G4Material* RichTbPlasticAg; + G4OpticalSurface* RichTbOpticalMirrorSurface; + G4OpticalSurface* RichTbOpticalEnclosureSurface; + G4OpticalSurface* RichTbOpticalGasQuartzWSurface; + G4OpticalSurface* HpdTQuartzWSurface; + G4OpticalSurface* HpdQuartzWPhCathodeSurface; + G4OpticalSurface* PhCathodeSkinSurface; + G4OpticalSurface* PhCathodeBorderSurface; + G4OpticalSurface* HpdSiCoatSurface; + //The following metal surface used although it would be redundant. + // The metal volume has no ref. index. + G4OpticalSurface* RichTbOpticalHpdMetalSurface; + + G4OpticalSurface* RichTbOpticalFilterSurface; + + + RichTbRunConfig* rConfig; +}; + + + +#endif + diff --git a/examples/advanced/Rich/include/RichTbMaterialParameters.hh b/examples/advanced/Rich/include/RichTbMaterialParameters.hh new file mode 100644 index 0000000000..fb288fd47a --- /dev/null +++ b/examples/advanced/Rich/include/RichTbMaterialParameters.hh @@ -0,0 +1,279 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbMaterialParameters.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbMaterialParameters_h +#define RichTbMaterialParameters_h 1 + +#include "globals.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbAnalysisManager.hh" +#include "RichTbRunConfig.hh" +#include "AerogelTypeSpec.hh" + +extern void InitializeRichTbMaterial(); +extern void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig); + + +extern vector InitializeHpdQE(G4int); +extern vector InitializeHpdWaveL(G4int); +extern vector InitN2RefIndex(G4double, G4double); +extern vector InitN2RefPhotW(); +extern vector InitAgelPhotW(); +extern vector InitializePhotonMomentumVector(); +extern vector getDeadPixelList(G4int ihpdNum , G4int IsectNum); +extern vectorGetAerogelRScatLength(AerogelType); +extern G4double GetCurrentBulkTrans(G4double currentMatRefIndex, + G4double currentNeighbourRefIndex, + G4double MaxTotMeasuredTransmission); + +// extern void GetGlassD263FilterTrans(); +// +// the following value should be calculated in terms of the +// fundamental constants in the future. It is the conversion +// factor between the wavelength of a photon in nanometers +// and its energy in eV. +static const G4double PhotMomWaveConv=1243.125; + +// Limits of Photon Energy and number of bins for the +// Photon energy range. +// static const G4double PhotonMinEnergy=1.5*eV; +static const G4double PhotonMinEnergy=1.3*eV; +static const G4double PhotonMaxEnergy=7.3*eV; + static const G4int NumPhotWaveLengthBins = 1000; + static const G4int NumPhotonRichMirrorReflWaveLengthBins=63; + static const G4int NumAerogelRefIndexPhotonEnergyBins=37; +// static const G4int NumFilterGlassD263WaveLengthBins=10; +// Defintion of STP pressure and temp + +//static const G4double Pressure_STP=1.013*bar; +//static const G4double Temperature_STP=273.*kelvin +static const G4double GasPressure_STP=STP_Pressure; +static const G4double GasTemperature_STP=STP_Temperature; +// Ref Index of nitrogen using sellmeir parametrization +static const G4double SellN2E1=13.414; +static const G4double SellN2E2=23.215; +static const G4double SellN2F1=921.28; +static const G4double SellN2F2=3569.60; +static const G4double GasMolWeightN2=28.02; //unit is grams +static const G4double GasRhoN2atSTP=0.00125053; //unit is gramPercm3 +// +// +//Mirror reflectivity +// In the following, the bins at 100 nm, and 1000nm are +// defined just for convenience of interpolation. +// They are not measured points. +static const G4double PhotonWavelengthRefl[]= +{100.0, 200.0, 210.0, 220.0, 230.0, 240.0, 250.0, 260.0, 270.0, 280.0, + 290.0, 300.0, 310.0, 320.0, 330.0, 340.0, 350.0, 360.0, 370.0, 380.0, + 390.0, 400.0, 410.0, 420.0, 430.0, 440.0, 450.0, 460.0, 470.0, 480.0, + 490.0, 500.0, 510.0, 520.0, 530.0, 540.0, 550.0, 560.0, 570.0, 580.0, + 590.0, 600.0, 610.0, 620.0, 630.0, 640.0, 650.0, 660.0, 670.0, 680.0, + 690.0, 700.0, 710.0, 720.0, 730.0, 740.0, 750.0, 760.0, 770.0, 780.0, + 790.0, 800.0, 1000.0 }; + +static const G4double RichTbMirrorReflectivity[]= + {0.0, 0.9106, 0.9232, 0.9285, 0.9314, 0.9323, 0.9312, 0.9287, 0.9264, + 0.9234, 0.9195, 0.9156, 0.9109, 0.9066, 0.9022, 0.8981, 0.8925, 0.8883, + 0.8836, 0.8796, 0.8756, 0.8727, 0.8697, 0.8672, 0.8653, 0.8636, 0.8624, + 0.8612, 0.8608, 0.8601, 0.8601, 0.8601, 0.8600, 0.8603, 0.8603, 0.8604, + 0.8605, 0.8608, 0.8609, 0.8608, 0.8608, 0.8606, 0.8604, 0.8600, 0.8598, + 0.8591, 0.8581, 0.8573, 0.8563, 0.8549, 0.8535, 0.8517, 0.8497, 0.8475, + 0.8447, 0.8417, 0.8382, 0.8388, 0.8296, 0.8258, 0.8204, 0.8172, 0.8172 }; + +static const G4double RichTbMirrorEfficiency[]= + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0 }; + +// Transmission in quartz + +static const G4int NumPhotonRichTbGasQuartzWSurfaceWaveLengthBins=10; +static const G4double RichGasQuartzWSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; +static const G4double RichTbGasQuartzWSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; +static const G4double RichTbGasQuartzWSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + +// Transmission in the filters +static const G4int NumPhotonRichTbFilterSurfaceWaveLengthBins=10; +static const G4double RichTbFilterSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; +static const G4double RichTbFilterSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; +static const G4double RichTbFilterSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; +// In the G4Example only 1 type of filter is used. +// In the LHCb implementation several types of filters +// were used. The program was originally setup for upto +// 6 types of filters. +// Now for the Glass D263 filter +static const G4int NumPhotBinGlassD263Trans=601; +// static const G4double RefIndexGlassD263=1.50; +// artifically low value for the ref index of filter used for the +// G4example. If one uses the original value of 1.5, the cherenkov +// photons created in the filter by the 9 GeV/c pions will have cherenkov +// angle larger than the critical angle and hence would cause +// an (almost) infinite loop of total internal reflections. These +// photons eventually die from photon absorption, +// but they use a lot of cpu time. +// In the lhcb implementation the G4OpboundaryProcess is modified to +// to take care of this. But for the G4example this complication is +// avoided by using an artificially low value for the ref idex of the filter. +// SE. 15-11-2002. +static const G4double RefIndexGlassD263=1.30; +// for initlializing the arrays for the filter tramsmission +// the following value is used. The arrays are later resized +// to the appropiate value. +static const G4int NumFilterTransBins= NumPhotBinGlassD263Trans; +// +//Now for the different type of Aerogel Tiles +//In the G4example the same Aerogel type is simply repeated 5 times. +//In the LHCb implementation 5 different types are used. +static const G4double AerogelTypeAClarity + =0.00719*micrometer*micrometer*micrometer*micrometer/cm; +static const G4double AerogelTypeATotTrans=0.9368; +static const G4double AerogelTypeANominalRefIndex=1.03066; + +static const G4double AerogelTypeBClarity= AerogelTypeAClarity; +static const G4double AerogelTypeBTotTrans=AerogelTypeATotTrans; +static const G4double AerogelTypeBNominalRefIndex=AerogelTypeANominalRefIndex; +// +static const G4double AerogelTypeCClarity=AerogelTypeAClarity; +static const G4double AerogelTypeCTotTrans=AerogelTypeATotTrans; +static const G4double AerogelTypeCNominalRefIndex=AerogelTypeANominalRefIndex; +static const G4double AerogelTypeDClarity=AerogelTypeAClarity; +static const G4double AerogelTypeDTotTrans=AerogelTypeATotTrans; +static const G4double AerogelTypeDNominalRefIndex=AerogelTypeANominalRefIndex; +static const G4double AerogelTypeEClarity=AerogelTypeAClarity; +static const G4double AerogelTypeETotTrans=AerogelTypeATotTrans; +static const G4double AerogelTypeENominalRefIndex=AerogelTypeANominalRefIndex; +static const G4double AerogelReferenceRefIndWavelength[]= +{400.0*nanometer,400.0*nanometer,400.0*nanometer,400.0*nanometer, + 400.0*nanometer}; +static const G4double StdAerogelNominalRefIndex=1.034; +// for test try tdr aerogel +//static const G4double StdAerogelNominalRefIndex=1.03123653; +// static const char* StdAerogelRefIndFile = +// "/afs/cern.ch/user/s/seaso/mycmt/RichTb/v5/inputData/aerogelRefIndex.txt"; +// The following is the nominal ref index at STP for nitrogen. +// the aerogel is kept inside the nitrogen; +static const G4double NitrogenNominalRefIndex=1.000298; +// +// Quantum efficiency of the photocathodes +// the following line already in geometryparameters.hh +//static const G4int NumberOfHpds=4; + +static const G4int NumHpdTot= NumberOfHpds; +static const G4int NumQEbins=41; +// for now all HPDs have the same wavelength bins. +// for the G4Example the QE is multiplied by 1.08 to account for +// the fresnel losses at the HPD Input Quartz window. +// In the G4 example, the correction to +// account for the QE reduction in the periphery of the HPD +// is not done, for simplicity. +// In the LHCb implementation this taken care of more accurately. +static const G4double HpdQEReductionFactor=1.08; +static const G4double HpdQEWaveL[]= +{200.0,210.0,220.0,230.0,240.0,250.0,260.0,270.0,280.0,290.0,300.0, + 310.0,320.0,330.0,340.0,350.0,360.0,370.0,380.0,390.0,400.0,410.0, + 420.0,430.0,440.0,450.0,460.0,470.0,480.0,490.0,500.0,510.0,520.0, + 530.0,540.0,550.0,560.0,570.0,580.0,590.0,600.0}; +static const G4double Hpd0QEPerCent[]= +{0.0,0.0,2.4264,9.0559,14.5723,18.9039,24.2476,27.9504,29.0910, + 31.5069,28.2676,26.8652,26.0060,25.2934,24.5034,23.4996,22.6084, + 21.0618,19.6225,18.2942,16.4564,14.3433,12.5074,10.6036,8.7953, + 7.2646,6.1266,5.0693,3.9949,3.0248,2.2300,1.5261,0.8610,0.4803, + 0.2870,0.1320,0.0500,0.0135,0.0,0.0,0.0}; +static const G4double Hpd1QEPerCent[]= +{0.0,1.0810,3.1196,6.4212,10.4983,14.3031,17.9612,20.6541,22.1570, + 25.5633,25.3696,25.2293,25.1988,24.9773,24.8055,24.4088,24.1165, + 23.3368,22.4608,21.8726,20.4717,18.9725,17.5489,15.8493,14.1541, + 12.5689,11.1047,9.7609,8.4922,7.3264,6.2243,5.0602,3.5248,2.3012, + 1.5403,1.0813,0.6823,0.4553,0.2524,0.1227,0.0583}; +static const G4double Hpd2QEPerCent[]= +{0.0,0.0,1.3648,4.1624,6.8814,9.5704,12.5728,15.4286,16.7373,19.9520, + 20.0918,20.3359,20.6562,20.7517,20.6236,20.1992,19.8387,18.6558,17.5653, + 16.6784,15.2398,13.6456,12.1764,10.5722,9.0127,7.6529,6.4820,5.4517, + 4.4408,3.5450,2.7400,1.9825,1.3073,0.7549,0.4712,0.3031,0.1675, + 0.0803,0.0391,0.0169,0.0094}; +static const G4double Hpd3QEPerCent[]= +{0.0,11.3501,12.1319,13.2398,16.2100,18.7656,21.7482,24.3610,25.0792, + 28.6009,28.2349,28.4114,28.5484,28.6614,28.8812,28.7106,28.1548,28.0591, + 25.5305,21.8913,19.6042,18.3709,17.3953,17.1329,16.2153,14.8937,14.6245, + 13.0102,13.8088,13.2000,12.0881,10.7617,8.1836,5.9729,4.6335,3.6822, + 2.9047,2.2591,1.7516,1.2502,0.8219}; +// only the linear term is used for now +// static const G4double HpdDemagConst[]={ } +static const G4double HpdDemagLinearTerm[]= +{2.46433268,2.28343310,2.29306727,2.37845184}; +// In the G4example the quadratic term is neglected and hence set to zero. +static const G4double HpdDemagQuadraticTerm[]= +{0.0,0.0,0.0,0.0}; +static const G4double HpdDemagErrorPercent=0.0; +// in the G4example a PSF factor is used, just an example. +static const G4double PadHpdPSFsigma=100.0*micrometer; +//quartz Transmission for 10 mm thickness. +static const G4double QuTransDataThickness =10.0*mm; +static const G4int NumPhotbinQuartzTrans=6; +static const G4double QuartzTransWL[]= +{180.0 ,185.0, 190.0, 200.0, 220.0,1000.0}; +static const G4double QuartzTransmis[]= +{0.80, 0.90, 0.95 ,0.98 , 1.0,1.0}; +static const G4double PhCathodeNominalTransmission=0.52; + +//The dead Pixel List is set to zero for the G4Example. +//Hence all pixels are set to be active. +// The following is just a maximum number of deadpixels for array sizes. +static const G4int MaxNumDeadPixelPerHpdSect=50; + +// Now for the back scattering +static const G4double backscaprob=0.18; +// Now for the approximate and adhoc way of evaluating the effect of +// backscattering. +static const G4double NsigmaInPedCut=4.0; +static const G4double SignalToNoiseInData=10.0; + +#endif + + + + + + + + + + + diff --git a/examples/advanced/Rich/include/RichTbPhotoDetector.hh b/examples/advanced/Rich/include/RichTbPhotoDetector.hh new file mode 100644 index 0000000000..8baf21d706 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbPhotoDetector.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPhotoDetector.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbPhotoDetector_h +#define RichTbPhotoDetector_h 1 + +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbComponent.hh" +#include "RichTbHpd.hh" +#include "RichTbRunConfig.hh" +class RichTbPhotoDetector { +public: + + RichTbPhotoDetector(); + RichTbPhotoDetector(RichTbMaterial*, RichTbComponent*, RichTbRunConfig*, G4bool); + virtual ~RichTbPhotoDetector(); + G4int getNumberOfHpds() {return NumOfHpds; } + RichTbHpd* getRichHPD(G4int HpdNum){ return richHPD[HpdNum]; } +private: + + G4int NumOfHpds; + RichTbHpd* richHPD[NumberOfHpds]; + G4bool ConstructTrackingGeometrySwitch; +}; + +#endif + diff --git a/examples/advanced/Rich/include/RichTbPhysicsList.hh b/examples/advanced/Rich/include/RichTbPhysicsList.hh new file mode 100644 index 0000000000..9b4c3d901a --- /dev/null +++ b/examples/advanced/Rich/include/RichTbPhysicsList.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPhysicsList.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbPhysicsList_h +#define RichTbPhysicsList_h 1 + +#include "globals.hh" +#include "G4VUserPhysicsList.hh" +#include "RichTbRunConfig.hh" +#include "RichTbAnalysisManager.hh" +#include "G4ParticleTable.hh" + +class RichTbPhysicsList : public G4VUserPhysicsList +{ + public: + RichTbPhysicsList(); + RichTbPhysicsList(RichTbRunConfig*); + virtual ~RichTbPhysicsList(); + + protected: + // Construct particles and processes + 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(); + + protected: + // these methods Construct physics processes and register them + virtual void ConstructGeneral(); + virtual void ConstructEM(); + virtual void ConstructOp(); + +private: + RichTbRunConfig* rConfigPh; + RichTbAnalysisManager* rAnalysisPh; + + // the particle table has the complete List of existing particle types + G4ParticleTable* theParticleTable; + G4ParticleTable::G4PTblDicIterator* theParticleIterator; + +}; + +#endif + + + + diff --git a/examples/advanced/Rich/include/RichTbPrimaryGeneratorAction.hh b/examples/advanced/Rich/include/RichTbPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..56ae461f2e --- /dev/null +++ b/examples/advanced/Rich/include/RichTbPrimaryGeneratorAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPrimaryGeneratorAction.hh for Rich of LHCb +// History: +// Created: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// + +#ifndef RichTbPrimaryGeneratorAction_h +#define RichTbPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class RichTbDetectorConstruction; +class RichTbPrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RichTbPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + RichTbPrimaryGeneratorAction(RichTbDetectorConstruction*); + ~RichTbPrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + void SetRndmFlag(G4String val) { rndmFlag = val;} + void Setxvertex(G4double x) ; + void Setyvertex(G4double y) ; + void Setzvertex(G4double z) ; + + static G4String GetPrimaryName() ; + + private: + G4ParticleGun* particleGun; //pointer a to G4 service class + RichTbDetectorConstruction* RichTbDetector; //pointer to the geometry + + RichTbPrimaryGeneratorMessenger* gunMessenger; //messenger of this class + G4String rndmFlag; //flag for a random impact point + + static G4String thePrimaryParticleName ; + G4double xvertex,yvertex,zvertex; + G4bool vertexdefined; + +}; + +#endif + + diff --git a/examples/advanced/Rich/include/RichTbPrimaryGeneratorMessenger.hh b/examples/advanced/Rich/include/RichTbPrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..2926b1b3cf --- /dev/null +++ b/examples/advanced/Rich/include/RichTbPrimaryGeneratorMessenger.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPrimaryGeneratorMessenger.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbPrimaryGeneratorMessenger_h +#define RichTbPrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class RichTbPrimaryGeneratorAction; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RichTbPrimaryGeneratorMessenger: public G4UImessenger +{ + public: + RichTbPrimaryGeneratorMessenger(RichTbPrimaryGeneratorAction*); + ~RichTbPrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + RichTbPrimaryGeneratorAction* RichTbAction; + G4UIcmdWithAString* RndmCmd; + G4UIcmdWithADoubleAndUnit* setxvertexCmd; + G4UIcmdWithADoubleAndUnit* setyvertexCmd; + G4UIcmdWithADoubleAndUnit* setzvertexCmd; +}; + +#endif + diff --git a/examples/advanced/Rich/include/RichTbRODummySD.hh b/examples/advanced/Rich/include/RichTbRODummySD.hh new file mode 100644 index 0000000000..25c47a577a --- /dev/null +++ b/examples/advanced/Rich/include/RichTbRODummySD.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbRODummySD.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbRODummySD_h +#define RichTbRODummySD_h 1 +#include "G4VSensitiveDetector.hh" +class G4Step; + +class RichTbRODummySD : public G4VSensitiveDetector +{ +public: + RichTbRODummySD(); + ~RichTbRODummySD() {}; + + void Initialize(G4HCofThisEvent*HCE) {}; + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} + void EndOfEvent(G4HCofThisEvent*HCE) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; + +}; +RichTbRODummySD::RichTbRODummySD() + : G4VSensitiveDetector("RichTbROdummySD") {} + +#endif diff --git a/examples/advanced/Rich/include/RichTbROGeometry.hh b/examples/advanced/Rich/include/RichTbROGeometry.hh new file mode 100644 index 0000000000..c744f16258 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbROGeometry.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbROGeometry.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbROGeometry_h +#define RichTbROGeometry_h 1 +#include "G4VReadOutGeometry.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbMaterial.hh" +#include "RichTbHall.hh" +#include "RichTbComponent.hh" +#include "RichTbRunConfig.hh" +#include "RichTbPhotoDetector.hh" + +class RichTbROGeometry : public G4VReadOutGeometry { +public: + RichTbROGeometry(RichTbMaterial*,RichTbRunConfig*); + RichTbROGeometry(G4String, RichTbMaterial*,RichTbRunConfig*); + ~RichTbROGeometry(); + + G4VPhysicalVolume* Build(); + + RichTbHall* getRichTbHall() + { return ROTbHall; } + RichTbComponent* getRichTbComponent() + { return ROTbComponent; } + RichTbPhotoDetector* getROPhotDet() + { return ROPhotDet ;} +private: + + RichTbMaterial* rMaterial; + RichTbRunConfig* ROTbConfig; + RichTbHall* ROTbHall; + RichTbComponent* ROTbComponent; + RichTbPhotoDetector* ROPhotDet; + +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbRunAction.hh b/examples/advanced/Rich/include/RichTbRunAction.hh new file mode 100644 index 0000000000..2f9e71c918 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbRunAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbRunAction.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbRunAction_h +#define RichTbRunAction_h 1 + +#include "globals.hh" +#include "G4UserRunAction.hh" + +class G4Timer; +class G4Run; + +class RichTbRunAction : public G4UserRunAction +{ + public: + + RichTbRunAction(); + + virtual ~RichTbRunAction(); + + public: + + void BeginOfRunAction(const G4Run* aRun); + void EndOfRunAction(const G4Run* aRun); + + private: + + G4Timer* timer; +}; + +#endif + + diff --git a/examples/advanced/Rich/include/RichTbRunConfig.hh b/examples/advanced/Rich/include/RichTbRunConfig.hh new file mode 100644 index 0000000000..ec4cda1850 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbRunConfig.hh @@ -0,0 +1,188 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbRunConfig.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbRunConfig_h +#define RichTbRunConfig_h 1 + +#include "globals.hh" +#include +#include "AerogelTypeSpec.hh" +#include "FilterTypeSpec.hh" +#include "AerogelRefData.hh" +#include "FilterTrData.hh" +#include +#include +class RichTbRunConfig{ + public: + RichTbRunConfig(); + virtual ~RichTbRunConfig(); + G4double getPressureN2() + {return CurrentPressureN2;} + G4double getTemperatureN2() + { return CurrentTemperatureN2; } + G4double getMirrorAddTiltX() + {return MirrorAddTiltX; } + G4double getMirrorAddTiltY() + {return MirrorAddTiltY; } + G4int getRichTbHall_visib() + {return RichTbHall_visib;} + G4int getRichTbEnclosure_visib() + {return RichTbEnclosure_visib;} + G4int getRichTbRadFrame_visib() + {return RichTbRadFrame_visib;} + G4int getRichTbRadUpW_visib() + {return RichTbRadUpW_visib;} + G4int getRichTbRadDnW_visib() + {return RichTbRadDnW_visib;} + G4int getRichTbAerogel_visib() + {return RichTbAerogel_visib;} + G4int getRichTbAerogelWrap_visib() + {return RichTbAerogelWrap_visib;} + G4int getRichTbFilter_visib() + {return RichTbFilter_visib;} + G4int getRichTbMirror_visib() + {return RichTbMirror_visib;} + G4int getRichTbHpdMaster_visib() + {return RichTbHpdMaster_visib; } + G4int getRichTbHpdEnvelopeTube_visib() + {return RichTbHpdEnvelopeTube_visib;} + + G4int getRichTbHpdQuartzW_visib() + {return RichTbHpdQuartzW_visib; } + G4int getRichTbHpdPhCathode_visib() + {return RichTbHpdPhCathode_visib; } + G4int getRichTbHpdSiDet_visib() + {return RichTbHpdSiDet_visib; } + G4int getRichTbHpdSectCoat_visib() + {return RichTbHpdSectCoat_visib; } + G4int getRichTbHpdSiPx_visib() + {return RichTbHpdSiPx_visib; } + G4int getRefIndexPara() + {return RefIndexPara; } + G4int getRichTbDrawTrajectory() {return RichTbDrawTrajectory_visib; } + G4double getHpdPhElectronEnergy() {return HpdPhElectronEnergy; } + G4int DoWriteOutputFile() {return WriteOutputFile; } + G4String getOutputFileName() {return OutputFileName; } + G4String getOutputHistoDirName() {return OutputHistoDirName; } + G4int getWriteMiscOutputFlag() {return WriteMiscOutputFlag; } + G4String getMiscOutFileName() {return MiscOutFileName; } + G4int GetFilterTNumber() {return FilterTNumber; } + FilterType GetFilterType() {return CurFilterType; } + G4int GetNumberOfAerogelTiles() {return NumberOfAerogelTiles ; } + G4int GetCurAerogelTNumber(G4int AgelNum ) + {return CurAerogelTNumber[AgelNum];} + AerogelType GetCurAerogelType(G4int AgelNumber) + {return CurAerogelType[AgelNumber];} + AerogelRefData* GetAerogelRefdata() {return AerogelRefractiveInd;} + FilterTrData* GetFilterTrData() {return FilterTransData; } + G4int GetRichTbNumPartEvent() {return RichTbNumPartEvent; } + G4int GetRichTbParticleTypeCode() {return RichTbParticleTypeCode; } + G4int GetRichTbParticleStartPosCode() {return RichTbParticleStartPosCode; } + G4int GetRichTbParticleDirectionCode(){return RichTbParticleDirectionCode; } + G4int GetRichTbParticleEnergyCode(){return RichTbParticleEnergyCode; } + G4double GetRichTbParticleEnergy() {return RichTbParticleEnergy; } + G4double GetRichTbPhotLowE() {return RichTbPhotLowE; } + G4double GetRichTbPhotHighE() {return RichTbPhotHighE; } + G4String GetAerogelRefDataFile() {return AerogelRefDataInputFileName; } + G4String GetFilterTransDataFile() { return FilterTransDataInputFileName; } +private: + + G4double CurrentPressureN2; + G4double CurrentTemperatureN2; + G4int RefIndexPara; + G4double MirrorAddTiltX; + G4double MirrorAddTiltY; +//Graphics setups + //For Following variables 0 means make the volume invisible; + // 1 means make it visible as a solid. + // 2 means make it visible as a wireframe. + + G4int RichTbHall_visib; + G4int RichTbEnclosure_visib; + G4int RichTbRadFrame_visib; + G4int RichTbRadUpW_visib; + G4int RichTbRadDnW_visib; + G4int RichTbAerogel_visib; + G4int RichTbAerogelWrap_visib; + G4int RichTbFilter_visib; + G4int RichTbMirror_visib; + G4int RichTbHpdMaster_visib; + G4int RichTbHpdEnvelopeTube_visib; + G4int RichTbHpdQuartzW_visib; + G4int RichTbHpdPhCathode_visib; + G4int RichTbHpdSiDet_visib; + G4int RichTbHpdSectCoat_visib; + G4int RichTbHpdSiPx_visib; + G4int RichTbDrawTrajectory_visib; + G4double HpdPhElectronEnergy; + G4int FilterTNumber; + FilterType CurFilterType; + G4int NumberOfAerogelTiles; + vectorCurAerogelTNumber; + vectorCurAerogelType; + G4int WriteOutputFile; + G4String OutputFileName; + G4String OutputHistoDirName; + G4String AerogelRefDataInputFileName; + G4String FilterTransDataInputFileName; + G4int WriteMiscOutputFlag; + G4String MiscOutFileName; + AerogelRefData* AerogelRefractiveInd; + FilterTrData* FilterTransData; + + //The following is for particle types. + // used as the beam. + //First the number of beam particles per event. + G4int RichTbNumPartEvent; + // 0 means piminus, 1 means optical photon, + // 2 means mixture of piminus and proton. + G4int RichTbParticleTypeCode; + //The following poscode = 0 means standard pos (0, 0, -2000.0 mm); + // =1 means special pos implemented. + G4int RichTbParticleStartPosCode; + // The following dire code =0 means dir is 0,0,1. The other + // codes for getting the beam spread is not implemented yet. + G4int RichTbParticleDirectionCode; + G4int RichTbParticleEnergyCode; + // the following is for charged particle energy in GeV. + + G4double RichTbParticleEnergy; + //The following is for photon energy range in eV for testing optical + // parameters. + G4double RichTbPhotLowE; + G4double RichTbPhotHighE; + + +}; +#endif + + + + + + diff --git a/examples/advanced/Rich/include/RichTbSD.hh b/examples/advanced/Rich/include/RichTbSD.hh new file mode 100644 index 0000000000..bcc96695f5 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbSD.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSD.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbSD_h +#define RichTbSD_h 1 +#include "globals.hh" +#include "G4VSensitiveDetector.hh" +#include "G4ThreeVector.hh" +#include "RichTbHit.hh" +#include "RichTbGeometryParameters.hh" +class G4Step; +class G4HCofThisEvent; + + +class RichTbSD : public G4VSensitiveDetector +{ + + public: + RichTbSD(G4String , G4int, G4int, G4int,G4String ); + virtual ~RichTbSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + RichTbHitsCollection * RichTbHitCollection; + G4int NumberOfSensitiveHpds; + G4int NumberOfSensitiveSectorsInHpd; + G4int NumberOfSensitivePixelsInSector; + vector HpdSDID; + + + G4int HCID; +}; + + + +#endif diff --git a/examples/advanced/Rich/include/RichTbSiDet.hh b/examples/advanced/Rich/include/RichTbSiDet.hh new file mode 100644 index 0000000000..d9e7900a63 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbSiDet.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSiDet.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbSiDet_h +#define RichTbSiDet_h 1 +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbGeometryParameters.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbSiPixel.hh" +class RichTbSiDet { +public: + RichTbSiDet(); + virtual ~RichTbSiDet(); + RichTbSiDet(RichTbMaterial*, G4VPhysicalVolume*, G4bool, G4int, G4int); + + + G4LogicalVolume* getHpdSiSectLogicalVolume() + {return RichTbHpdSiSectLVol;} + G4VPhysicalVolume* getHpdSiSectPhysicalVolume() + {return RichTbHpdSiSectPVol;} + G4LogicalVolume* getHpdSectCoatLogicalVolume() + {return RichTbHpdSectCoatLVol;} + G4VPhysicalVolume* getHpdSectCoatPhysicalVolume() + {return RichTbHpdSectCoatPVol;} + G4int getNumSiPixels(){return NumHpdSiPix ;} + G4int getCurSiSectNum(){return CurSiSectNum;} + RichTbSiPixel* getHpdSiPx(G4int ipixelnum ) + { return hpdSiPixel[ipixelnum]; } + G4int getIHpdNumber() + { return IHpdNumber; } + +private: + G4LogicalVolume* RichTbHpdSiSectLVol; + G4VPhysicalVolume* RichTbHpdSiSectPVol; + G4LogicalVolume* RichTbHpdSectCoatLVol; + G4VPhysicalVolume* RichTbHpdSectCoatPVol; + G4int NumHpdSiPix; + G4int CurSiSectNum; + RichTbSiPixel* hpdSiPixel[NumberOfPadHpdSiPixels]; + G4bool ConstructTrackGeomSwitch; + G4int IHpdNumber; + +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbSiPixel.hh b/examples/advanced/Rich/include/RichTbSiPixel.hh new file mode 100644 index 0000000000..22c3b43cac --- /dev/null +++ b/examples/advanced/Rich/include/RichTbSiPixel.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSiPixel.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbSiPixel_h +#define RichTbSiPixel_h 1 +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "RichTbGeometryParameters.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +class RichTbSiPixel { +public: + RichTbSiPixel(); + virtual ~RichTbSiPixel(); + RichTbSiPixel(RichTbMaterial*, G4VPhysicalVolume*, G4int, G4int, G4int); + + G4LogicalVolume* getHpdSiPixelLogicalVolume() + {return RichTbHpdSiPixelLVol;} + G4VPhysicalVolume* getHpdSiPixelPhysicalVolume() + {return RichTbHpdSiPixelPVol;} + G4int getICurSectorNumber() {return ICurSectorNumber; } + G4int getHpdSiPixelnum() {return HpdSiPixelnum; } + G4int getICurHpdNumber() {return ICurHpdNumber;} +private: + G4LogicalVolume* RichTbHpdSiPixelLVol; + G4VPhysicalVolume* RichTbHpdSiPixelPVol; + G4int ICurSectorNumber; + G4int HpdSiPixelnum; + G4int ICurHpdNumber; + G4bool PixelIsAlive; +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbStackingAction.hh b/examples/advanced/Rich/include/RichTbStackingAction.hh new file mode 100644 index 0000000000..8bda706569 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbStackingAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbStackingAction.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbStackingAction_h +#define RichTbStackingAction_h 1 + +#include "G4UserStackingAction.hh" +class RichTbStackingAction : public G4UserStackingAction { + + public: + RichTbStackingAction(); + virtual ~RichTbStackingAction(); + void NewStage(){ ;} + void PrepareNewEvent(){;} + + +private: +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbSteppingAction.hh b/examples/advanced/Rich/include/RichTbSteppingAction.hh new file mode 100644 index 0000000000..4796bc079a --- /dev/null +++ b/examples/advanced/Rich/include/RichTbSteppingAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSteppingAction.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbSteppingAction_h +#define RichTbSteppingAction_h 1 + +#include "G4UserSteppingAction.hh" +#include "G4VDiscreteProcess.hh" +#include "G4VParticleChange.hh" +#include "G4ParticleChange.hh" + +class RichTbAnalysisManager; +class RichTbRunConfig; +class RichTbPrimaryGeneratorAction; + +class RichTbSteppingAction : public G4UserSteppingAction { + + public: + + RichTbSteppingAction(RichTbRunConfig* , + RichTbPrimaryGeneratorAction* ); + virtual ~RichTbSteppingAction(); + void UserSteppingAction(const G4Step* aStep); + void RichTbGenericHisto(const G4Step* aStep); + void RichTbDebugHisto(const G4Step* aStep); + RichTbAnalysisManager* getRAnalysisManager() + {return ranalysisManager; } + RichTbRunConfig* getRichTbRunConfig() + {return richtbRunConfig; } + G4double getHpdPhElectronKE() + {return HpdPhElectronKE; } + +private: + RichTbAnalysisManager* ranalysisManager; + RichTbRunConfig* richtbRunConfig; + RichTbPrimaryGeneratorAction* rPrimGenAction; + G4double HpdPhElectronKE; + G4VParticleChange* uParticleChange; + +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbTrackingAction.hh b/examples/advanced/Rich/include/RichTbTrackingAction.hh new file mode 100644 index 0000000000..3ae9ce0267 --- /dev/null +++ b/examples/advanced/Rich/include/RichTbTrackingAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbTrackingAction.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifndef RichTbTrackingAction_h +#define RichTbTrackingAction_h 1 + +#include "G4UserTrackingAction.hh" +class RichTbTrackingAction : public G4UserTrackingAction { + + public: + RichTbTrackingAction(); + virtual ~RichTbTrackingAction(); + void PreUserTrackingAction(const G4Track* aTrack){;} + void PostUserTrackingAction(const G4Track* aTrack){;} + + +private: +}; +#endif diff --git a/examples/advanced/Rich/include/RichTbVisManager.hh b/examples/advanced/Rich/include/RichTbVisManager.hh new file mode 100644 index 0000000000..8391766aab --- /dev/null +++ b/examples/advanced/Rich/include/RichTbVisManager.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbVisManager.hh for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// + +#ifndef RichTbVisManager_h +#define RichTbVisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class RichTbVisManager: public G4VisManager { + +public: + + RichTbVisManager (); + virtual ~RichTbVisManager(); +private: + + void RegisterGraphicsSystems (); + +}; + +#endif + +#endif diff --git a/examples/advanced/Rich/inputData/FilterTransInput.dat b/examples/advanced/Rich/inputData/FilterTransInput.dat new file mode 100644 index 0000000000..892a5e09f7 --- /dev/null +++ b/examples/advanced/Rich/inputData/FilterTransInput.dat @@ -0,0 +1,601 @@ + 800 92.0400 + 799 92.0850 + 798 92.0400 + 797 91.9650 + 796 91.8850 + 795 92.0100 + 794 92.1100 + 793 91.9500 + 792 92.0100 + 791 91.9750 + 790 91.9900 + 789 91.9600 + 788 91.9650 + 787 91.9600 + 786 91.9100 + 785 91.9200 + 784 91.9950 + 783 92.0750 + 782 92.0800 + 781 92.0550 + 780 92.0000 + 779 92.1000 + 778 92.0500 + 777 92.0850 + 776 92.1000 + 775 92.0050 + 774 92.0300 + 773 92.0400 + 772 92.0000 + 771 92.0350 + 770 92.1100 + 769 92.0400 + 768 92.0700 + 767 92.1250 + 766 92.0600 + 765 92.0650 + 764 92.0800 + 763 91.9950 + 762 92.1050 + 761 92.1350 + 760 92.1000 + 759 92.1250 + 758 92.0800 + 757 92.1450 + 756 92.1150 + 755 92.0850 + 754 92.0650 + 753 92.1000 + 752 92.1050 + 751 92.1050 + 750 92.1900 + 749 92.2350 + 748 92.2350 + 747 92.2650 + 746 92.1900 + 745 92.2100 + 744 92.1700 + 743 92.1500 + 742 92.1400 + 741 92.1950 + 740 92.2200 + 739 92.2000 + 738 92.1500 + 737 92.2200 + 736 92.2100 + 735 92.2350 + 734 92.1850 + 733 92.1900 + 732 92.1400 + 731 92.1650 + 730 92.1700 + 729 92.1350 + 728 92.1650 + 727 92.1650 + 726 92.2250 + 725 92.2150 + 724 92.1600 + 723 92.2350 + 722 92.2750 + 721 92.2100 + 720 92.2750 + 719 92.2050 + 718 92.1400 + 717 92.1550 + 716 92.1050 + 715 92.1000 + 714 92.1450 + 713 92.1900 + 712 92.2000 + 711 92.1550 + 710 92.1900 + 709 92.2100 + 708 92.1900 + 707 92.1850 + 706 92.2350 + 705 92.2250 + 704 92.2000 + 703 92.2700 + 702 92.2000 + 701 92.2000 + 700 92.2250 + 699 92.1750 + 698 92.2250 + 697 92.2100 + 696 92.2350 + 695 92.2100 + 694 92.1700 + 693 92.2000 + 692 92.1750 + 691 92.1550 + 690 92.1650 + 689 92.1900 + 688 92.2050 + 687 92.1650 + 686 92.1650 + 685 92.1950 + 684 92.1750 + 683 92.2150 + 682 92.2250 + 681 92.2000 + 680 92.1400 + 679 92.1850 + 678 92.1950 + 677 92.1750 + 676 92.2200 + 675 92.2250 + 674 92.2350 + 673 92.2450 + 672 92.1800 + 671 92.1650 + 670 92.1900 + 669 92.2200 + 668 92.1900 + 667 92.2100 + 666 92.2150 + 665 92.1900 + 664 92.1450 + 663 92.1800 + 662 92.1800 + 661 92.2150 + 660 92.2250 + 659 92.2100 + 658 92.1600 + 657 92.2100 + 656 92.2150 + 655 92.1850 + 654 92.1950 + 653 92.2050 + 652 92.2150 + 651 92.2150 + 650 92.1900 + 649 92.1500 + 648 92.1750 + 647 92.1950 + 646 92.2200 + 645 92.2100 + 644 92.1900 + 643 92.1550 + 642 92.1750 + 641 92.1550 + 640 92.1500 + 639 92.1250 + 638 92.1000 + 637 92.1900 + 636 92.2050 + 635 92.1600 + 634 92.1550 + 633 92.1600 + 632 92.1950 + 631 92.1850 + 630 92.1800 + 629 92.2200 + 628 92.2150 + 627 92.1700 + 626 92.1750 + 625 92.2050 + 624 92.1750 + 623 92.1400 + 622 92.1800 + 621 92.1500 + 620 92.1550 + 619 92.1650 + 618 92.1750 + 617 92.1850 + 616 92.1600 + 615 92.1550 + 614 92.1650 + 613 92.1550 + 612 92.1650 + 611 92.1450 + 610 92.1400 + 609 92.1450 + 608 92.1000 + 607 92.1350 + 606 92.1250 + 605 92.1600 + 604 92.1300 + 603 92.1050 + 602 92.1300 + 601 92.1450 + 600 92.1450 + 599 92.1050 + 598 92.1450 + 597 92.1500 + 596 92.1850 + 595 92.1550 + 594 92.1700 + 593 92.1500 + 592 92.1100 + 591 92.1000 + 590 92.0850 + 589 92.1300 + 588 92.1200 + 587 92.0750 + 586 92.1150 + 585 92.1100 + 584 92.1300 + 583 92.0900 + 582 92.0700 + 581 92.0650 + 580 92.1050 + 579 92.1050 + 578 92.1150 + 577 92.1150 + 576 92.1000 + 575 92.0900 + 574 92.0800 + 573 92.0900 + 572 92.0950 + 571 92.0850 + 570 92.0700 + 569 92.0550 + 568 92.0850 + 567 92.0900 + 566 92.0650 + 565 92.0850 + 564 92.0800 + 563 92.0300 + 562 91.9700 + 561 92.0400 + 560 92.0650 + 559 92.0550 + 558 92.0250 + 557 92.0600 + 556 92.0300 + 555 92.0600 + 554 92.0600 + 553 92.0200 + 552 92.0650 + 551 92.0600 + 550 92.0650 + 549 92.0750 + 548 92.0300 + 547 92.0600 + 546 92.0050 + 545 92.0350 + 544 92.0150 + 543 91.9900 + 542 92.0000 + 541 92.0450 + 540 92.0100 + 539 92.0350 + 538 92.0500 + 537 92.0000 + 536 92.0100 + 535 92.0050 + 534 91.9850 + 533 91.9800 + 532 91.9750 + 531 91.9850 + 530 91.9900 + 529 92.0000 + 528 91.9900 + 527 91.9850 + 526 91.9850 + 525 91.9700 + 524 92.0000 + 523 91.9500 + 522 91.9500 + 521 91.9300 + 520 91.9700 + 519 91.9600 + 518 91.9350 + 517 91.9500 + 516 91.9700 + 515 91.9150 + 514 91.9400 + 513 91.9450 + 512 91.9400 + 511 91.9300 + 510 91.9300 + 509 91.8800 + 508 91.9200 + 507 91.9550 + 506 91.9350 + 505 91.9000 + 504 91.9200 + 503 91.8700 + 502 91.9000 + 501 91.8500 + 500 91.8800 + 499 91.8800 + 498 91.9150 + 497 91.8750 + 496 91.9150 + 495 91.8450 + 494 91.8400 + 493 91.8850 + 492 91.9350 + 491 91.8650 + 490 91.8400 + 489 91.8200 + 488 91.8750 + 487 91.8300 + 486 91.8350 + 485 91.8350 + 484 91.8550 + 483 91.8600 + 482 91.8100 + 481 91.8600 + 480 91.8600 + 479 91.8250 + 478 91.8200 + 477 91.8150 + 476 91.8350 + 475 91.8400 + 474 91.8150 + 473 91.8550 + 472 91.8200 + 471 91.8150 + 470 91.7500 + 469 91.7850 + 468 91.7600 + 467 91.7500 + 466 91.7700 + 465 91.8000 + 464 91.7400 + 463 91.7450 + 462 91.7400 + 461 91.7050 + 460 91.6600 + 459 91.7650 + 458 91.7350 + 457 91.7200 + 456 91.7300 + 455 91.7100 + 454 91.6850 + 453 91.6850 + 452 91.7400 + 451 91.7600 + 450 91.7650 + 449 91.7250 + 448 91.6600 + 447 91.6100 + 446 91.6650 + 445 91.6800 + 444 91.6100 + 443 91.6800 + 442 91.5850 + 441 91.6250 + 440 91.5600 + 439 91.6450 + 438 91.6400 + 437 91.6000 + 436 91.5850 + 435 91.5500 + 434 91.5850 + 433 91.5850 + 432 91.5800 + 431 91.6100 + 430 91.6400 + 429 91.5850 + 428 91.5300 + 427 91.5500 + 426 91.5700 + 425 91.5800 + 424 91.5900 + 423 91.4950 + 422 91.4850 + 421 91.4850 + 420 91.5050 + 419 91.4700 + 418 91.4900 + 417 91.5300 + 416 91.5050 + 415 91.4700 + 414 91.4900 + 413 91.5200 + 412 91.5350 + 411 91.5250 + 410 91.5300 + 409 91.5200 + 408 91.4750 + 407 91.5100 + 406 91.5000 + 405 91.4850 + 404 91.4550 + 403 91.3850 + 402 91.4000 + 401 91.3800 + 400 91.4650 + 399 91.5100 + 398 91.4350 + 397 91.3500 + 396 91.3600 + 395 91.3450 + 394 91.3300 + 393 91.4050 + 392 91.3550 + 391 91.3150 + 390 91.3300 + 389 91.4150 + 388 91.2700 + 387 91.1900 + 386 91.2900 + 385 91.1800 + 384 91.2250 + 383 91.1300 + 382 91.1350 + 381 91.1700 + 380 91.2100 + 379 91.0850 + 378 91.1300 + 377 91.1650 + 376 91.0950 + 375 91.1150 + 374 91.0950 + 373 91.0550 + 372 91.0450 + 371 90.9200 + 370 90.9800 + 369 91.0750 + 368 90.9500 + 367 90.9650 + 366 90.8850 + 365 90.9000 + 364 90.8100 + 363 90.8200 + 362 90.8050 + 361 90.6800 + 360 90.6850 + 359 90.5850 + 358 90.5400 + 357 90.5300 + 356 90.4650 + 355 90.3050 + 354 90.2500 + 353 90.0650 + 352 89.9800 + 351 89.9100 + 350 89.7250 + 349 89.5400 + 348 89.4250 + 347 89.1850 + 346 89.1100 + 345 88.7200 + 344 88.3750 + 343 88.0500 + 342 87.8550 + 341 87.5100 + 340 87.0700 + 339 86.6700 + 338 86.0550 + 337 85.5900 + 336 84.8300 + 335 84.0950 + 334 83.3000 + 333 82.4900 + 332 81.3850 + 331 80.2300 + 330 78.9300 + 329 77.5200 + 328 75.9700 + 327 74.2350 + 326 72.4450 + 325 70.4550 + 324 68.2750 + 323 65.8900 + 322 63.3000 + 321 60.4700 + 320 57.4950 + 319 54.3700 + 318 51.0900 + 317 47.5950 + 316 43.9850 + 315 40.3150 + 314 36.5150 + 313 32.7350 + 312 28.9800 + 311 25.3500 + 310 21.8300 + 309 18.5150 + 308 15.4300 + 307 12.6100 + 306 10.0950 + 305 7.9050 + 304 6.0450 + 303 4.5100 + 302 3.2750 + 301 2.3100 + 300 1.5800 + 299 1.0450 + 298 0.6700 + 297 0.4200 + 296 0.2550 + 295 0.1550 + 294 0.0950 + 293 0.0600 + 292 0.0400 + 291 0.0350 + 290 0.0250 + 289 0.0250 + 288 0.0250 + 287 0.0250 + 286 0.0250 + 285 0.0250 + 284 0.0250 + 283 0.0200 + 282 0.0200 + 281 0.0200 + 280 0.0250 + 279 0.0250 + 278 0.0200 + 277 0.0200 + 276 0.0200 + 275 0.0250 + 274 0.0200 + 273 0.0200 + 272 0.0200 + 271 0.0200 + 270 0.0200 + 269 0.0200 + 268 0.0200 + 267 0.0200 + 266 0.0200 + 265 0.0200 + 264 0.0200 + 263 0.0200 + 262 0.0200 + 261 0.0200 + 260 0.0200 + 259 0.0200 + 258 0.0150 + 257 0.0200 + 256 0.0200 + 255 0.0200 + 254 0.0200 + 253 0.0200 + 252 0.0200 + 251 0.0200 + 250 0.0200 + 249 0.0150 + 248 0.0150 + 247 0.0150 + 246 0.0200 + 245 0.0200 + 244 0.0200 + 243 0.0200 + 242 0.0200 + 241 0.0200 + 240 0.0200 + 239 0.0200 + 238 0.0200 + 237 0.0200 + 236 0.0200 + 235 0.0200 + 234 0.0200 + 233 0.0200 + 232 0.0200 + 231 0.0200 + 230 0.0200 + 229 0.0200 + 228 0.0200 + 227 0.0200 + 226 0.0200 + 225 0.0200 + 224 0.0200 + 223 0.0200 + 222 0.0200 + 221 0.0200 + 220 0.0200 + 219 0.0250 + 218 0.0250 + 217 0.0200 + 216 0.0200 + 215 0.0200 + 214 0.0200 + 213 0.0250 + 212 0.0250 + 211 0.0200 + 210 0.0250 + 209 0.0250 + 208 0.0250 + 207 0.0250 + 206 0.0250 + 205 0.0300 + 204 0.0350 + 203 0.0300 + 202 0.0350 + 201 0.0400 + 200 0.0400 diff --git a/examples/advanced/Rich/inputData/aerogelRefIndexInput.dat b/examples/advanced/Rich/inputData/aerogelRefIndexInput.dat new file mode 100644 index 0000000000..fc22cb5138 --- /dev/null +++ b/examples/advanced/Rich/inputData/aerogelRefIndexInput.dat @@ -0,0 +1,37 @@ +1.00 1.03465 +1.25 1.03475 +1.50 1.03487 +1.75 1.03502 +2.00 1.03519 +2.25 1.03539 +2.50 1.03562 +2.75 1.03587 +3.00 1.03615 +3.25 1.03646 +3.50 1.03681 +3.75 1.03719 +4.00 1.03761 +4.25 1.03808 +4.50 1.03858 +4.75 1.03914 +5.00 1.03975 +5.25 1.04042 +5.50 1.04116 +5.75 1.04197 +6.00 1.04287 +6.25 1.04387 +6.50 1.04498 +6.75 1.04622 +7.00 1.04761 +7.25 1.04920 +7.50 1.05101 +7.75 1.05310 +8.00 1.05554 +8.25 1.05844 +8.50 1.06194 +8.75 1.06626 +9.00 1.07176 +9.25 1.07905 +9.50 1.08920 +9.75 1.10449 + \ No newline at end of file diff --git a/examples/advanced/Rich/macro/gui.mac b/examples/advanced/Rich/macro/gui.mac new file mode 100644 index 0000000000..33007a4e87 --- /dev/null +++ b/examples/advanced/Rich/macro/gui.mac @@ -0,0 +1,31 @@ +# +# 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 ../macro/run1.mac" + +# +# Vis menu : +/gui/addMenu vis Vis +/gui/addButton vis Vis0 "/control/execute ../macro/RichTbVis0.mac" + +# +#Setup driver Menu: +/gui/addMenu setup Setup +# /gui/addButton setup Init "/control/execute ../macro/InitRichTb.mac" +/gui/addButton setup opgl "/control/execute ../macro/SetupOpenGL.mac" +/gui/addButton setup dawn "/control/execute ../macro/SetupDawn.mac" +# +# To limit the output flow in the "dump" widget : +/event/printModulo 100 + + + diff --git a/examples/advanced/Rich/outputData/McOutputG4Example.dat b/examples/advanced/Rich/outputData/McOutputG4Example.dat new file mode 100644 index 0000000000..fa2cc6b74d --- /dev/null +++ b/examples/advanced/Rich/outputData/McOutputG4Example.dat @@ -0,0 +1,28 @@ +9 + 3 0 4 49.7386 150.373 99.0187 + 0 12 28 147.981 21.0972 110.641 + 1 3 28 20.3513 -146.566 110.818 + 2 13 33 -141.255 43.6408 102.346 + 1 5 69 3.46392 -150.377 112.859 + 3 0 49 19.0977 147.364 111.077 + 0 11 103 143.116 44.6994 101.891 + 1 3 40 28.2627 -148.871 108.715 + 1 11 33 -44.1108 -142.736 102.183 +5 + 3 4 125 -12.6703 91.5218 94.6715 + 1 10 60 -22.847 -150.721 110.146 + 3 8 23 -43.0856 144.268 102.759 + 3 8 68 -16.1594 146.573 111.63 + 0 13 69 150.269 4.04504 112.841 +11 + 3 5 33 -17.9766 102.675 100.5 + 0 8 33 98.498 4.28633 100.027 + 1 3 30 31.598 -147.669 107.643 + 3 8 14 -36.3804 143.587 105.792 + 3 8 78 -18.7976 149.179 111.104 + 0 11 112 143.77 47.7513 100.237 + 3 8 24 -43.3309 145.142 102.654 + 2 12 59 -147.881 7.01453 112.733 + 2 5 40 -149.109 -29.1983 108.415 + 3 13 68 6.83367 159.936 111.809 + 3 8 10 -54.3685 143.293 96.0556 diff --git a/examples/advanced/Rich/outputData/MyOutputDataFile b/examples/advanced/Rich/outputData/MyOutputDataFile new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/advanced/Rich/run1.mac b/examples/advanced/Rich/run1.mac new file mode 100644 index 0000000000..ba6369d582 --- /dev/null +++ b/examples/advanced/Rich/run1.mac @@ -0,0 +1,45 @@ +# $Id: run1.mac,v 1.2 2003/06/12 08:50:50 pmendez Exp $ +# +# Macro file for "LHCbRichSim.cc" +# +#/vis/open OGLIX +# (can be run in batch, without graphic) +/control/verbose 2 +/control/saveHistory +# +#run/verbose 4 +#event/verbose 4 +#tracking/verbose 5 +#process/verbose 4 +#particle/process/verbose 4 +#vis/verbose 4 + +/vis/scene/create +/vis/sceneHandler/create OGLSXm +/vis/sceneHandler/create OGLIX +/vis/viewer/create +/vis/scene/add/volume + + +/vis/viewer/update + +/vis/viewer/viewpointThetaPhi -90. -90. +/hits/list +/hits/activate +/hits/verbose 4 +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories + +/gun/particle pi- +/gun/energy 10 GeV + +/gun/xvertex 0.000 mm +/gun/yvertex 0.000 mm +/gun/zvertex -20.000 mm + +/run/beamOn 2 + + + + + diff --git a/examples/advanced/Rich/src/AerogelRefData.cc b/examples/advanced/Rich/src/AerogelRefData.cc new file mode 100644 index 0000000000..69509385d7 --- /dev/null +++ b/examples/advanced/Rich/src/AerogelRefData.cc @@ -0,0 +1,198 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// AerogelRefData.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include +#include "AerogelRefData.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbMaterialParameters.hh" +AerogelRefData::AerogelRefData(G4String AgelRefIndFile) + :NumberOfRefIndBins(NumAerogelRefIndexPhotonEnergyBins), + StdAerogelRefphotE(vector(NumAerogelRefIndexPhotonEnergyBins)), + StdAerogelRefIndexValue(vector(NumAerogelRefIndexPhotonEnergyBins)), + AerogelRefIndShift(vector( MaxNumberOfAerogelTypes)), + AerogelWavelengthRef(vector( MaxNumberOfAerogelTypes)) { + + AerogelRefIndexFileName=AgelRefIndFile; + + StdAerogelNominalRefractiveIndex= StdAerogelNominalRefIndex; + + ReadStdAerogelRefIndex(); + G4double AerogelRefEnergy,AerogelReferenceRefInd; + for(G4int ityp=0; ityp< MaxNumberOfAerogelTypes; ityp++ ){ + AerogelWavelengthRef[ityp]=AerogelReferenceRefIndWavelength[ityp]; + AerogelRefEnergy= + (PhotMomWaveConv/(AerogelWavelengthRef[ityp]/nanometer))*eV; + + AerogelReferenceRefInd = GetStdAgelRefIndexE(AerogelRefEnergy); + AerogelRefIndShift[ityp] = AerogelReferenceRefInd - + StdAerogelNominalRefractiveIndex ; + } + +} +G4double AerogelRefData::GetStdAgelRefIndexE(G4double StdAgelRefEnergy) { + + G4double refint= StdAerogelNominalRefractiveIndex; + if(StdAgelRefEnergy <= StdAerogelRefphotE[0] ) { + refint= StdAerogelRefphotE[0]; + G4cout<<"Ref index reference value outside bounds "< StdAerogelRefphotE[ NumberOfRefIndBins-1 ] ) { + refint= StdAerogelRefphotE[ NumberOfRefIndBins-1 ]; + G4cout<<"Ref index reference value outside bounds "< E1 && StdAgelRefEnergy <= E2 && E1 != E2 ){ + + //Now interpolate + G4double r1= StdAerogelRefIndexValue[iabin]; + G4double r2= StdAerogelRefIndexValue[iabin+1]; + G4double slp=(r2-r1)/(E2-E1); + G4double ain= r1-slp*E1; + refint= slp*StdAgelRefEnergy + ain; + break; + } + + } + + return refint; + +} +void AerogelRefData::ReadStdAerogelRefIndex() { + + const char* StdAerogelRefIndFile= AerogelRefIndexFileName.c_str(); + if( StdAerogelRefIndFile == 0 ){ + G4cout<<" Aerogel RefIndex Input file missing" + << " Please provide the correct file name " + <>ephot; + finpga>>rind; + StdAerogelRefphotE[fbin]=ephot*eV; + StdAerogelRefIndexValue[fbin]=rind; + //for test avoid the variation in ref index. SE 18-10-01 + // StdAerogelRefIndexValue[fbin]= StdAerogelNominalRefractiveIndex; + + } + + } + +} + +vector AerogelRefData::GetCurAerogelRefIndValueVect (G4int AerogelTnum ) { + // no test for tdr rich. now put back to TB conditions. + vectorCAgel(NumberOfRefIndBins); + AerogelType Ctype; + G4double CRn = GetRefnominal( AerogelTnum ); + for (G4int ib=0; ib < NumberOfRefIndBins; ib++ ){ + + CAgel[ib]= StdAerogelRefIndexValue[ib] + - StdAerogelNominalRefractiveIndex-AerogelRefIndShift[ AerogelTnum] + CRn; + + } + + return CAgel; + +} + +G4double AerogelRefData:: GetCurAerogelRefIndValue( G4int rbinw , G4int AerogelTnum ){ + // no test for tdr. now in TB conditions. + G4double crn= GetRefnominal( AerogelTnum ); + return StdAerogelRefIndexValue[rbinw] + - StdAerogelNominalRefractiveIndex-AerogelRefIndShift[ AerogelTnum] +crn; + // - StdAerogelNominalRefractiveIndex-AerogelRefIndShift[ AerogelTnum] +crn; + // return StdAerogelRefIndexValue[rbinw]-1.03269+crn; +} + +G4double AerogelRefData::GetRefnominal(G4int AgelTnum ) { + + G4double CRnominal = StdAerogelNominalRefractiveIndex; + if(AgelTnum == 0 ){ + + CRnominal= AerogelTypeANominalRefIndex; + }else if (AgelTnum == 1 ) { + + CRnominal= AerogelTypeBNominalRefIndex; + }else if (AgelTnum == 2 ) { + + CRnominal= AerogelTypeCNominalRefIndex; + }else if (AgelTnum == 3 ) { + + CRnominal= AerogelTypeDNominalRefIndex; + }else if (AgelTnum == 4 ) { + + CRnominal= AerogelTypeENominalRefIndex; + + } else {G4cout<<"Unknown Aerogel Type "< +#include +#include "FilterTrData.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbMaterialParameters.hh" +FilterTrData::FilterTrData(G4int FilterTypeNum, G4String FilterDataFileName ) + :NumberOfTrBins(NumFilterTransBins), + TransWaveL(vector(NumFilterTransBins)), + TransValue(vector(NumFilterTransBins)), + TransTotValue(vector(NumFilterTransBins)) + { + // In the G4example the same type of filter is used + // for all types of filters. + FilterTypeNumber= FilterTypeNum; + FilterTransDataFileName=FilterDataFileName; + if( FilterTypeNum >= 0 && FilterTypeNum <= 5 ) { + FilterTypeIndex = GlassD263; + FilterRefIndexNominal = RefIndexGlassD263 ; + } else if (FilterTypeNum == -1 ) { + G4cout<<" No filter for this run "<=0 ) { + FilterThickness = 2.0*FilterHalfZArray[FilterTypeNum]; + } +} +void FilterTrData::ReadFilterTrans() { + //first get the filter type index + FilterType Ftype = GetFilterTypeIndex(); + if(Ftype == GlassD263 ) { + const char* D263FilterTransFile= FilterTransDataFileName.c_str(); + if(D263FilterTransFile != 0 ) { + G4cout<<"Glass D263 Filter trans is from "<>wa; + finpga>>trn; + TransWaveL[NumberOfTrBins-fbin-1]=wa; +// TransValue[NumberOfTrBins-fbin-1]=trn/100.0; + TransValue[NumberOfTrBins-fbin-1]=GetCurrentFilTrans(trn); + TransTotValue[NumberOfTrBins-fbin-1]=GetTotFilTrans(trn); + } + }else { + G4cout<<" Unknown file name for filter transmission Data input "< 1.0 ) trn=1.0; + return trn; +} +G4double FilterTrData::GetTotFilTrans(G4double trnData) { + // No wavelength dependance yet. + + return trnData/100.0; + +} +FilterTrData::~FilterTrData(){ ; } + + + + + + + diff --git a/examples/advanced/Rich/src/HpdSiEnergyLoss.cc b/examples/advanced/Rich/src/HpdSiEnergyLoss.cc new file mode 100644 index 0000000000..33ef56b43d --- /dev/null +++ b/examples/advanced/Rich/src/HpdSiEnergyLoss.cc @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// HpdSiEnergyLoss.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "HpdSiEnergyLoss.hh" +#include "G4Material.hh" +#include "Randomize.hh" +#include "RichTbMaterialParameters.hh" +#include "RichTbAnalysisManager.hh" + +HpdSiEnergyLoss::HpdSiEnergyLoss(const G4String& materialName, + const G4String& processName) + : G4VEnergyLoss(processName), + MinKineticEnergy(1.*eV),MipEnergy(30000.0*eV), + finalRangeforStep(0.15*mm) { + ElossMaterialName= materialName; + + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + G4int numberOfMat = G4Material::GetNumberOfMaterials(); + + + for(G4int iMat=0;iMatGetName()){ + fMatIndex=(*theMaterialTable)[iMat]->GetIndex(); + break; + } + + } + if(iMat >= numberOfMat ) { + G4Exception("Invalid material Name in HpdSiEnergyLoss constructor" ); + } +} + +HpdSiEnergyLoss::~HpdSiEnergyLoss() { } + +G4bool HpdSiEnergyLoss::IsApplicable(const G4ParticleDefinition& + aParticleType) { + return(aParticleType.GetPDGCharge()!= 0.); +} + +G4double HpdSiEnergyLoss::GetContinuousStepLimit(const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety){ + + G4double RangeForStep = finalRangeforStep; + + if( fMatIndex != track.GetMaterial() -> GetIndex() ) { + RangeForStep = DBL_MAX; + } + + + return RangeForStep; + +} +G4double HpdSiEnergyLoss::GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition) { + // return infinity so that it does nothing. + *condition = NotForced; + return DBL_MAX; + +} +G4VParticleChange* HpdSiEnergyLoss::PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) { + // Do nothing + aParticleChange.Initialize(aTrack) ; + return G4VContinuousDiscreteProcess::PostStepDoIt(aTrack,aStep); + +} +G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack, + const G4Step& aStep) { + + +#ifdef G4ANALYSIS_USE + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); +#endif + + + aParticleChange.Initialize(aTrack); + G4int aMaterialIndex = aTrack.GetMaterial()->GetIndex(); + if(fMatIndex != aTrack.GetMaterial()->GetIndex() ) { + return &aParticleChange; + } + + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + G4double aKinEnergyInit = aParticle->GetKineticEnergy(); + G4double Eloss, aKinEnergyFinal; + if(aKinEnergyInit < MinKineticEnergy ) { Eloss=0.0 ; } + else if( aKinEnergyInit < MipEnergy ) {Eloss= aKinEnergyInit ;} + else { Eloss = MipEnergy; } + + aKinEnergyFinal=aKinEnergyInit-Eloss; + + + //In the G4example the backscattering is implemented in + //an adhoc manner as done below. It simply causes an + // efficiency loss. + + G4double bckratio; + if( SignalToNoiseInData > 0.0 ){ + bckratio = NsigmaInPedCut/ SignalToNoiseInData ; + + } + G4double Effs = 1.0 - backscaprob * bckratio; + G4double Randbsk = G4UniformRand(); + if(Randbsk <= Effs && Eloss > 0.0 ) { + aParticleChange.SetLocalEnergyDeposit(Eloss); + +#ifdef G4ANALYSIS_USE + + analysis->bumpNumHitInSi(); + +#endif + + G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); + G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); + G4int tpreVP = pPreStepPoint -> GetPhysicalVolume()->GetCopyNo(); + G4int tpreVPS = pPreStepPoint -> GetPhysicalVolume() + ->GetMother()->GetCopyNo(); + + } + if (aKinEnergyFinal <= MinKineticEnergy ) { + aParticleChange.SetStatusChange(fStopAndKill); + + }else { + aParticleChange.SetEnergyChange(aKinEnergyFinal); + + } + return &aParticleChange; + +} + + + + + + + + diff --git a/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc new file mode 100644 index 0000000000..de6f60773b --- /dev/null +++ b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc @@ -0,0 +1,276 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// PadHpdPhotoElectricEffect.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "globals.hh" +#include + +#include "PadHpdPhotoElectricEffect.hh" +#include "RichTbGeometryParameters.hh" +#include "G4TransportationManager.hh" +#include "Randomize.hh" +#include "RichTbAnalysisManager.hh" +#include "RichTbRunConfig.hh" +#include "RichTbMaterialParameters.hh" + +#include "RichTbAnalysisManager.hh" + + +PadHpdPhotoElectricEffect::PadHpdPhotoElectricEffect(const G4String& processName , + RichTbRunConfig* RConfig) + :G4VDiscreteProcess(processName), + HpdQE(NumHpdTot, vector( NumQEbins)), + HpdWabin(NumHpdTot, vector( NumQEbins)), + DemagnificationFactor(vector(NumHpdTot)), + DemagnificationQuadFactor(vector(NumHpdTot)) { + + rConfig=RConfig; + PrePhotoElectricVolName="PadHpdWindowQuartz"; + PostPhotoElectricVolName="BiAlkaliPhCathode"; + HpdPhElectronKE=(RConfig-> getHpdPhElectronEnergy())*keV; + PhCathodeToSilDetDist= HpdPhotoCathodeSiZdist; + PSFsigma=PadHpdPSFsigma; + + for(G4int ihpdq=0; ihpdqqeCurHpd = InitializeHpdQE(ihpdq); + vectorwaCurHpd = InitializeHpdWaveL(ihpdq); + if(qeCurHpd.size() != waCurHpd.size() ) { + G4cout<<"Wrong size for Hpd QE "<GetStepStatus() != fGeomBoundary){ + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + + } + + + G4String PrePhName = pPreStepPoint -> GetPhysicalVolume() -> + GetLogicalVolume() -> GetMaterial()->GetName(); + G4String PostPhName= pPostStepPoint -> GetPhysicalVolume() -> + GetLogicalVolume() -> GetMaterial() ->GetName(); + + + if(( PrePhName == PrePhotoElectricVolName && + PostPhName == PostPhotoElectricVolName) || + ( PostPhName == PrePhotoElectricVolName && + PrePhName == PostPhotoElectricVolName) ) { + + + }else { + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + +} + + if (aTrack.GetStepLength()<=kCarTolerance/2){ + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + } + + + + const G4DynamicParticle* aDynamicPhoton = aTrack.GetDynamicParticle(); + G4double PhotonEnergy = aDynamicPhoton->GetKineticEnergy(); + + if(PhotonEnergy <= 0.0 ) { + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + } + + + //Now use the QE for the current HPD to determine if a + // photoelectron should be produced or not. + + G4int currentHpdNumber= pPreStepPoint->GetPhysicalVolume() + -> GetMother() -> GetCopyNo(); + if(currentHpdNumber >= NumHpdTot ){ + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + + } + + G4double PhotWLength=PhotMomWaveConv/(PhotonEnergy/eV); + + G4double PhCathodeQE = getHpdQEff(currentHpdNumber, PhotWLength); + G4double randomnum = G4UniformRand(); + + + //the following three lines are copied from few lines later just + // for histogramming convenience. + G4ThreeVector GlobalElectronOrigin= pPostStepPoint->GetPosition(); + + G4Navigator* theNavigator = + G4TransportationManager::GetTransportationManager()-> + GetNavigatorForTracking(); + G4ThreeVector LocalElectronOrigin = theNavigator-> + GetGlobalToLocalTransform(). + TransformPoint(GlobalElectronOrigin); + + + + // For the histogram of the radius of the cherenkov circle. + // This assumes that the beam is along 001 axis in the global + // coord system. + G4double GLx=GlobalElectronOrigin.x(); + G4double GLy=GlobalElectronOrigin.y(); + G4double PhotCkvRad = pow((pow(GLx,2)+pow(GLy,2)),0.5); + G4double PhotCkvPhi = atan2(GLy,GLx)*180.0/pi; + + if( PhotCkvPhi < - 180.0 )PhotCkvPhi+= 360.0; + + if(randomnum < PhCathodeQE ) { + + + G4double CurDemagFactor=DemagnificationFactor[currentHpdNumber]; + G4double CurDemagQuadFactor=DemagnificationQuadFactor[currentHpdNumber]; + + // now get the Point Spread function. + + G4double PsfRandomAzimuth = twopi*G4UniformRand(); + G4double PsfRandomRad= G4RandGauss::shoot(0.0,PSFsigma); + G4double PsfX= PsfRandomRad*cos( PsfRandomAzimuth); + G4double PsfY= PsfRandomRad*sin( PsfRandomAzimuth); + + + G4ThreeVector LocalElectronDirection( + (CurDemagFactor+CurDemagQuadFactor*LocalElectronOrigin.x()-1.0)*LocalElectronOrigin.x()+PsfX, + (CurDemagFactor+CurDemagQuadFactor*LocalElectronOrigin.y()-1.0)*LocalElectronOrigin.y()+PsfY, + -(PhCathodeToSilDetDist- + (HpdPhCathodeRInner-LocalElectronOrigin.z()))); + //normalize this vector and then transform back to global coord system. + LocalElectronDirection = LocalElectronDirection.unit(); + + const G4ThreeVector GlobalElectronDirection = theNavigator-> + GetLocalToGlobalTransform(). + TransformAxis(LocalElectronDirection); + + G4double ElecKineEnergy=getHpdPhElectronKE(); + + //create the electron + G4DynamicParticle* aElectron= new G4DynamicParticle (G4Electron::Electron(), + GlobalElectronDirection, ElecKineEnergy) ; + + aParticleChange.SetNumberOfSecondaries(1) ; + // aParticleChange.AddSecondary( aElectron ) ; + aParticleChange.AddSecondary( aElectron,GlobalElectronOrigin,true ) ; + + + // Kill the incident photon when it has converted to photoelectron. + + aParticleChange.SetLocalEnergyDeposit(PhotonEnergy); + aParticleChange.SetEnergyChange(0.); + aParticleChange.SetStatusChange(fStopAndKill); + } + //photon is not killed if it is not converted to photoelectron + //SE 26-09-01. + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + +} + +G4double PadHpdPhotoElectricEffect::getHpdQEff(G4int HpdNum, + G4double PhotonWLength){ + + G4double hq1,hq2, wa1, wa2,aslope,aintc; + G4double qeff=0.0; + for (G4int ibinq=0 ; ibinq= wa1 && PhotonWLength <= wa2 ) { + hq1 = HpdQE[HpdNum][ibinq]; + hq2 = HpdQE[HpdNum][ibinq+1]; + aslope = (hq2-hq1)/(wa2-wa1); + aintc = hq1 - (aslope * wa1 ); + qeff= aintc + aslope * PhotonWLength ; + return qeff; + } + + } + return qeff; +} + + + + diff --git a/examples/advanced/Rich/src/RichTbAnalysisManager.cc b/examples/advanced/Rich/src/RichTbAnalysisManager.cc new file mode 100644 index 0000000000..aadf6f4a61 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbAnalysisManager.cc @@ -0,0 +1,267 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbAnalysisManager.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "G4Timer.hh" +#include "globals.hh" +#include "fstream" +#include +#include "G4ios.hh" +#include "G4Run.hh" +#include "G4Event.hh" +#include "G4Track.hh" +#include "G4VVisManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4SteppingManager.hh" + +#include "G4SDManager.hh" +#include "G4HCofThisEvent.hh" +#include "RichTbHit.hh" +#include "RichTbRunConfig.hh" + +#include "RichTbAnalysisMessenger.hh" + +#ifdef G4ANALYSIS_USE +#include "RichTbAnalysisManager.hh" +#include "AIDA/AIDA.h" + + + +RichTbAnalysisManager* RichTbAnalysisManager::instance = 0; + +RichTbAnalysisManager::RichTbAnalysisManager() + :outputFileName("rich.his"), analysisFactory(0),tree(0),histogramFactory(0) +{ + + iTimer = new G4Timer; + NumPhotBeforeAerogel=0; + NumPhotBeforeMirror=0; + NumPhotAfterMirror=0; + NumPhotBeforeFilter=0; + NumPhotAfterFilter=0; + NumPhotAtHpd1Input=0; + NumPhotAtHpd2Input=0; + NumPhotAtHpd3Input=0; + NumPhotAtHpd4Input=0; + NumHitTotInHpd1=0; + NumHitTotInHpd2=0; + NumHitTotInHpd3=0; + NumHitTotInHpd4=0; + NumHitInSi=0; + + + analisysMessenger = new RichTbAnalysisMessenger(this); + +// Hooking an AIDA compliant analysis system. + analysisFactory = AIDA_createAnalysisFactory(); + if(analysisFactory) { + + AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + if(treeFactory) { + + tree = treeFactory->create(outputFileName,"hbook",false,true); + + delete treeFactory; // Will not delete the ITree. + histogramFactory = analysisFactory->createHistogramFactory(*tree); + + } + } + +} + +RichTbAnalysisManager::~RichTbAnalysisManager(){ + + delete histogramFactory; + histogramFactory = 0; + + delete analysisFactory; + analysisFactory = 0; + + delete instance; +} + +RichTbAnalysisManager* RichTbAnalysisManager::getInstance() +{ + if(instance==0) {instance = new RichTbAnalysisManager;} + return instance; +} + +void RichTbAnalysisManager::book() +{ + + fhistoNrPhotG = histogramFactory->createHistogram1D("1","Number of Photon Hits per Track",120,0.,20.); + fhistoNBeforeMirror = histogramFactory->createHistogram1D("2","Number of Photons before Mirror",100,0.,750.); + fhistoWBeforeMirror = histogramFactory->createHistogram1D("3","WaveLength of Photons before Mirror",100,200.,800.); + fhistoWAfterMirror = histogramFactory->createHistogram1D("4","WaveLength of Photons after Mirror",100,200.,800.); + fhistoCkvProdSmall = histogramFactory->createHistogram1D("9","Cherekov Angle at roduction all angles",500,0.,0.5); + fhistoEmisZ = histogramFactory->createHistogram1D("10","Z of the Photon Emission Point",120,0.,600.); + fhistoCkvRadius = histogramFactory->createHistogram1D("5","Cherenkov Ring Radius",300,80.,220.); + +} + +void RichTbAnalysisManager::finish() +{ + if(tree){ + + tree->commit(); //Write histos and ntuples in file + tree->close(); + } + +} + + +void RichTbAnalysisManager::BeginOfEventAnalysis(const G4Event* evt){ + + //RichCollId is already defined in LHCbRichSimEventAction.cc + // Hence its extraction is not repeated here. + iTimer->Start(); + NumPhotBeforeAerogel=0; + NumPhotBeforeMirror=0; + NumPhotAfterMirror=0; + NumPhotBeforeFilter=0; + NumPhotAfterFilter=0; + NumPhotAtHpd1Input=0; + NumPhotAtHpd2Input=0; + NumPhotAtHpd3Input=0; + NumPhotAtHpd4Input=0; + NumHitTotInHpd1=0; + NumHitTotInHpd2=0; + NumHitTotInHpd3=0; + NumHitTotInHpd4=0; + NumHitInSi=0; + +} +void RichTbAnalysisManager::EndOfEventAnalysis(const G4Event* evt){ + + + + iTimer->Stop(); + G4double TimeforThisEvent= iTimer->GetRealElapsed(); + + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + + G4String colNam; + G4int RichTbCollID = SDman->GetCollectionID(colNam="RichTbHitsCollection"); + + G4int RichTbc = RichTbCollID; + G4int evtNb = evt->GetEventID(); + + if(RichTbc<0) return; + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + RichTbHitsCollection* RHC = + HCE ? (RichTbHitsCollection*)(HCE->GetHC(RichTbc)) : 0; + if(RHC) + { + + int n_hit = RHC->entries(); + G4cout << " " << n_hit + << " hits are stored in RichTbHitsCollection in event "<fill(n_hit*1.0); + + //To print and plot the number of hits per each HPD. + + for (G4int iha=0; iha GetCurHpdNum(); + if(CurHpdnum == 0 ) { + NumHitTotInHpd1++; + + }else if (CurHpdnum == 1 ) { + NumHitTotInHpd2++; + + }else if (CurHpdnum == 2 ) { + NumHitTotInHpd3++; + + }else if (CurHpdnum == 3 ) { + NumHitTotInHpd4++; + + } + + } + + //fill the number of photons before mirror into a histogram + + fhistoNBeforeMirror->fill(NumPhotBeforeMirror); + + G4cout<<"NumPhot before mirror "<SetGuidance("analysis control."); + + ouputFileCommand = new G4UIcmdWithAString("/analysis/outputFile",this); + ouputFileCommand->SetGuidance("specify the name of the output file (lowercase for Hbook)"); + ouputFileCommand->SetGuidance("default: rich.hbk"); + ouputFileCommand->SetParameterName("choice",true); + ouputFileCommand->SetDefaultValue("rich.his"); + ouputFileCommand->AvailableForStates(G4State_Idle); + +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RichTbAnalysisMessenger::~RichTbAnalysisMessenger() +{ + + delete RichTbAnalysisDir; + +} + +#endif + + + + + + + + + + + + + diff --git a/examples/advanced/Rich/src/RichTbComponent.cc b/examples/advanced/Rich/src/RichTbComponent.cc new file mode 100644 index 0000000000..89f68874f7 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbComponent.cc @@ -0,0 +1,382 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbComponent.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include "globals.hh" +#include "RichTbDetectorConstruction.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbMaterialParameters.hh" +#include "FilterTypeSpec.hh" +#include "RichTbComponent.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4Sphere.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4LogicalBorderSurface.hh" +#include "G4Material.hh" +#include "G4SubtractionSolid.hh" + +RichTbComponent::RichTbComponent(){ ; } +RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial, + RichTbHall* RTbHall , RichTbRunConfig* RConfig, + G4bool ConstructTrackingSwitch): + RichTbAgelLVol(vector(MaxNumberOfAerogelTiles)), + RichTbAgelPVol(vector(MaxNumberOfAerogelTiles)), + RichTbAgelWrapTopLVol(vector(MaxNumberOfAerogelTiles)), + RichTbAgelWrapTopPVol(vector(MaxNumberOfAerogelTiles)), + RichTbAgelWrapBotLVol(vector(MaxNumberOfAerogelTiles)), + RichTbAgelWrapBotPVol(vector(MaxNumberOfAerogelTiles)) + { + + ConstructTrackingGeometrySwitch=ConstructTrackingSwitch; + + //First define the shapes. + //Components of the Vessel. + G4Tubs * VesselEnclosure + = new G4Tubs("VesselEnclosure",VesselInnerRad,VesselOuterRad, + VesselHalfZ,VesselStartPhi,VesselDelPhi); + G4RotationMatrix VesselBRot; + G4ThreeVector VesselBTrsl(VesselPosX,VesselPosY,VesselPosZ); + + G4Transform3D VesselBTransform(VesselBRot,VesselBTrsl); + + G4LogicalVolume* VesselEnclosureLog= + new G4LogicalVolume(VesselEnclosure, RMaterial->getNitrogenGas(), + "VesselEnclosure",0,0,0); + + G4VPhysicalVolume* VesselEnclosurePhys= + new G4PVPlacement(VesselBTransform,"VesselEnclosure", + VesselEnclosureLog, + RTbHall->getRichTbHallPhysicalVolume(), + false,0); + // + // + if(ConstructTrackingSwitch){ + + G4int NAgelTiles=RConfig-> GetNumberOfAerogelTiles(); + + + G4Box * RadFrame + = new G4Box("RadFrame",RadFrameHalfX,RadFrameHalfY,RadFrameHalfZ); + + G4Box * RadHoldUps + = new G4Box("RadHoldUps",RadHoldUpHalfX,RadHoldUpHalfY,RadHoldUpHalfZ); + G4Tubs * RadHoldUpWin + = new G4Tubs("RadHoldUpWin", RadWinUpInnerRad, RadWinUpOuterRad, + RadWinUpHalfZ,RadWinUpStartPhi,RadWinUpDelPhi); + + + G4Box * RadHoldDns + = new G4Box("RadHoldDns",RadHoldDnHalfX,RadHoldDnHalfY,RadHoldDnHalfZ); + G4Tubs * RadHoldDnWin + = new G4Tubs("RadHoldDnWin", RadWinDnInnerRad, RadWinDnOuterRad, + RadWinDnHalfZ,RadWinDnStartPhi,RadWinDnDelPhi); + + + G4int FilterNum = RConfig->GetFilterTNumber(); + G4Box * FilterBox; + if(FilterNum >= 0 ) { + G4double FilterHalfZ= FilterHalfZArray[FilterNum]; + FilterBox + = new G4Box("FilterBox", FilterHalfX,FilterHalfY,FilterHalfZ); + + } + //Mirror + G4double MirrThetaSize=2.0*asin(MirrorHorizontalChord/(MirrorRInner*2.0)); + G4double MirrThetaStart=halfpi*rad-MirrThetaSize/2.0; + G4double MirrPhiSize=2.0*asin(MirrorVerticalChord/(MirrorRInner*2.0)); + G4double MirrPhiStart=-MirrPhiSize/2.0; + + G4Sphere* MirrorSphe= new G4Sphere("MirrorSphe",MirrorRInner, + MirrorROuter,MirrPhiStart, + MirrPhiSize,MirrThetaStart, + MirrThetaSize); + + //Now for the rotations and translations.. + + G4RotationMatrix RadFrameRot; + G4RotationMatrix RadWinUpRot,RadWinDnRot,RadHoldUpRot,RadHoldDnRot; + + G4ThreeVector RadFrameTrsl(RadFramePosX,RadFramePosY,RadFramePosZ); + G4Transform3D RadFrameTransform(RadFrameRot,RadFrameTrsl); + // + // + G4ThreeVector RadWinUpTrsl(RadWinUpShiftX,RadWinUpShiftY,RadWinUpShiftZ); + G4Transform3D RadWinUpTransform(RadWinUpRot,RadWinUpTrsl); + G4ThreeVector RadHoldUpTrsl(RadHoldUpPosX,RadHoldUpPosY,RadHoldUpPosZ); + G4Transform3D RadHoldUpTransform(RadHoldUpRot,RadHoldUpTrsl); + // + G4ThreeVector RadWinDnTrsl(RadWinDnShiftX,RadWinDnShiftY,RadWinDnShiftZ); + G4Transform3D RadWinDnTransform(RadWinDnRot,RadWinDnTrsl); + G4ThreeVector RadHoldDnTrsl(RadHoldDnPosX,RadHoldDnPosY,RadHoldDnPosZ); + G4Transform3D RadHoldDnTransform(RadHoldDnRot,RadHoldDnTrsl); + // + // + // + G4RotationMatrix MirrorRotationX, MirrorRotationY; + G4double MirrorExtraTiltX = RConfig->getMirrorAddTiltX(); + G4double MirrorExtraTiltY = RConfig->getMirrorAddTiltY(); + G4double MirrorTotRotX= MirrorNominalRotX+MirrorExtraTiltX; + G4double MirrorTotRotY= MirrorNominalRotY+MirrorExtraTiltY; + G4double MirrorPosX, MirrorPosY, MirrorPosZ; + + if( MirrorTotRotX !=0.0 || MirrorTotRotY != 0.0 ) { + MirrorPosX =-VesselPosX-MirrorRInner*sin(MirrorTotRotY); + MirrorPosY =-VesselPosY+MirrorRInner*sin(MirrorTotRotX); + MirrorPosZ =MirrorShiftFromEnd-VesselHalfZ + -MirrorRInner*(cos(MirrorTotRotY)+cos(MirrorTotRotX)-1.0); + }else { + MirrorPosX =-VesselPosX; + MirrorPosY =-VesselPosY; + MirrorPosZ =MirrorNominalPosZ; + } + G4ThreeVector MirrorPos(MirrorPosX,MirrorPosY,MirrorPosZ); + if (MirrorTotRotX != 0.0 ) { + MirrorRotationX.rotateX(MirrorTotRotX); + } + MirrorRotationY.rotateY(-halfpi*rad+MirrorTotRotY); + G4Transform3D MirrorTransform(MirrorRotationX*MirrorRotationY,MirrorPos); + + // + + G4LogicalBorderSurface* VesselOuterSurface = + new G4LogicalBorderSurface("VesselOuterSurface", + RTbHall->getRichTbHallPhysicalVolume(), + VesselEnclosurePhys, + RMaterial->getOpticalEnclosureSurface()); + G4LogicalBorderSurface* VesselInnerSurface = + new G4LogicalBorderSurface("VesselInnerSurface", + VesselEnclosurePhys, + RTbHall->getRichTbHallPhysicalVolume(), + RMaterial->getOpticalEnclosureSurface()); + + RichTbEnclosureOuterBSurf=VesselOuterSurface; + RichTbEnclosureInnerBSurf=VesselInnerSurface; + + G4LogicalVolume* RadFrameLog= + new G4LogicalVolume(RadFrame,RMaterial->getNitrogenGas(), + "RadFrame",0,0,0); + + G4VPhysicalVolume* RadFramePhys= + new G4PVPlacement(RadFrameTransform,"RadFrame",RadFrameLog, + VesselEnclosurePhys,false,0); + + //Now for the holder upstream and downstream of the Aerogel Tiles. + G4SubtractionSolid* RadUpW = + new G4SubtractionSolid("RadUpW",RadHoldUps,RadHoldUpWin, + RadWinUpTransform); + + G4LogicalVolume* RadUpWLog= + new G4LogicalVolume(RadUpW,RMaterial->getPlasticAg(), + "RadUpW",0,0,0); + + G4VPhysicalVolume* RadUpWPhys= + new G4PVPlacement( RadHoldUpTransform,"RadUpW",RadUpWLog, + RadFramePhys ,false,0); + // + G4SubtractionSolid* RadDnW = + new G4SubtractionSolid("RadDnW",RadHoldDns,RadHoldDnWin, + RadWinDnTransform); + + G4LogicalVolume* RadDnWLog= + new G4LogicalVolume(RadDnW,RMaterial->getAluminium(), + "RadDnW",0,0,0); + + G4VPhysicalVolume* RadDnWPhys= + new G4PVPlacement( RadHoldDnTransform,"RadDnW",RadDnWLog, + RadFramePhys ,false,0); + + + //Now for the various aerogel tiles and the wraps above and + //below them + + NumAerogelTiles= NAgelTiles; + G4RotationMatrix AgelRot,AgelWrapTopRot,AgelWrapBotRot; + G4double AgelPosSZ[MaxNumberOfAerogelTiles]; + G4double AgelPosCurZ[MaxNumberOfAerogelTiles]; + for(G4int agNum=0; agNumGetCurAerogelTNumber(agNum); + + G4Box* Agel = new G4Box("Agel", AgelHalfX[agTnumber], + AgelHalfY[agTnumber],AgelHalfZ[agTnumber]); + + AgelPosSZ[agNum]=AgelHalfZ[agTnumber]; + + AgelPosCurZ[agNum]=AgelEndZ-AgelHalfZ[agTnumber]; + for(G4int agt=0; agtgetAerogelMaterial(agTnumber); + + G4LogicalVolume* AgelLog= + new G4LogicalVolume(Agel,CurAgelMaterial,"Agel",0,0,0); + G4VPhysicalVolume* AgelPhys= + new G4PVPlacement(AgelTransform,"Agel",AgelLog, + RadFramePhys,false,agNum); + + RichTbAgelLVol[agNum] = AgelLog; + RichTbAgelPVol[agNum] = AgelPhys; + + G4Box* AgelWrapTop = new G4Box("AgelWrapTop", AgelWrapTopHalfX[agTnumber], + AgelWrapTopHalfY[agTnumber], + AgelWrapTopHalfZ[agTnumber]); + G4Box* AgelWrapBot = new G4Box("AgelWrapBot", AgelWrapBotHalfX[agTnumber], + AgelWrapBotHalfY[agTnumber], + AgelWrapBotHalfZ[agTnumber]); + + G4double AgelWrapTopPosCurZ=AgelPosCurZ[agNum]; + G4double AgelWrapBotPosCurZ=AgelPosCurZ[agNum]; + G4double AgelWrapTopPosCurY=AgelHalfY[agTnumber]+ + AgelWrapTopHalfY[agTnumber]; + G4double AgelWrapBotPosCurY=-AgelHalfY[agTnumber]+ + -AgelWrapBotHalfY[agTnumber]; + G4ThreeVector AgelWrapTopTrsl(AgelWrapTopPosX[agNum], + AgelWrapTopPosCurY,AgelWrapTopPosCurZ); + G4Transform3D AgelWrapTopTransform(AgelWrapTopRot,AgelWrapTopTrsl); + G4ThreeVector AgelWrapBotTrsl(AgelWrapBotPosX[agNum], + AgelWrapBotPosCurY,AgelWrapBotPosCurZ); + G4Transform3D AgelWrapBotTransform(AgelWrapBotRot,AgelWrapBotTrsl); + + G4LogicalVolume* AgelWrapTopLog= + new G4LogicalVolume(AgelWrapTop, RMaterial->getPlasticAg(), + "AgelWrapTop",0,0,0); + G4LogicalVolume* AgelWrapBotLog= + new G4LogicalVolume(AgelWrapBot, RMaterial->getPlasticAg(), + "AgelWrapBot",0,0,0); + + G4VPhysicalVolume* AgelWrapTopPhys= + new G4PVPlacement(AgelWrapTopTransform,"AgelWrapTop", + AgelWrapTopLog,RadFramePhys,false,agNum); + + G4VPhysicalVolume* AgelWrapBotPhys= + new G4PVPlacement(AgelWrapBotTransform,"AgelWrapBot", + AgelWrapBotLog,RadFramePhys,false,agNum); + + RichTbAgelWrapTopLVol[agNum] = AgelWrapTopLog; + RichTbAgelWrapTopPVol[agNum] = AgelWrapTopPhys; + RichTbAgelWrapBotLVol[agNum] = AgelWrapBotLog; + RichTbAgelWrapBotPVol[agNum] = AgelWrapBotPhys; + + } + + // FilterType CurFil= RConfig->GetFilterType(); + G4int Filnum= RConfig->GetFilterTNumber() ; + G4LogicalVolume* FilterLog; + G4VPhysicalVolume* FilterPhys; + if(Filnum >= 0 ) { + + G4double FilterHalfZCur= FilterHalfZArray[Filnum]; + + G4double FilterPosZ= FilterPosZNominal-FilterHalfZNominal+FilterHalfZCur; + + + G4RotationMatrix FilterRot; + + G4ThreeVector FilterTrsl(FilterPosX,FilterPosY,FilterPosZ); + G4Transform3D FilterTransform(FilterRot,FilterTrsl); + + G4Material* CurFilterMaterial + = RMaterial-> getRichTbFilterMaterial( Filnum); + + FilterLog= + new G4LogicalVolume(FilterBox, CurFilterMaterial, + "FilterBox",0,0,0); + + FilterPhys= + new G4PVPlacement(FilterTransform,"FilterBox",FilterLog, + RadFramePhys,false,0); + + G4LogicalBorderSurface* FilterInnerSurface = + new G4LogicalBorderSurface("RichTbFilterInnerSurface", + FilterPhys,VesselEnclosurePhys, + RMaterial->getOpticalFilterSurface()); + + G4LogicalBorderSurface* FilterOuterSurface = + new G4LogicalBorderSurface("RichTbFilterOuterSurface", + VesselEnclosurePhys,FilterPhys, + RMaterial->getOpticalFilterSurface()); + + } + G4LogicalVolume* MirrorLog= + new G4LogicalVolume(MirrorSphe,RMaterial->getMirrorQuartz(), + "MirrorSphe",0,0,0); + + + G4VPhysicalVolume* MirrorPhys= + new G4PVPlacement(MirrorTransform,"MirrorSphe",MirrorLog, + VesselEnclosurePhys,false,0); + G4LogicalBorderSurface* MirrorSurface = + new G4LogicalBorderSurface("RichTbMirrorSurface", + VesselEnclosurePhys,MirrorPhys, + RMaterial->getOpticalMirrorSurface()); + + + RichTbRadFrameLVol= RadFrameLog; + RichTbRadFramePVol= RadFramePhys; + + RichTbRadUpWLVol= RadUpWLog; + RichTbRadUpWPVol= RadUpWPhys; + + RichTbRadDnWLVol= RadDnWLog; + RichTbRadDnWPVol= RadDnWPhys; + + if(Filnum >= 0 ) { + RichTbFilterLVol = FilterLog; + RichTbFilterPVol = FilterPhys; + } + RichTbMirrorLVol=MirrorLog; + RichTbMirrorPVol=MirrorPhys; + RichTbMirrorBSurf=MirrorSurface; + } + + RichTbEnclosureLVol=VesselEnclosureLog; + RichTbEnclosurePVol=VesselEnclosurePhys; + + + } + +RichTbComponent::~RichTbComponent() {; } + + + + + + + + + diff --git a/examples/advanced/Rich/src/RichTbDetectorConstruction.cc b/examples/advanced/Rich/src/RichTbDetectorConstruction.cc new file mode 100644 index 0000000000..0aa059f25e --- /dev/null +++ b/examples/advanced/Rich/src/RichTbDetectorConstruction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbDetectorConstruction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include "RichTbMaterialParameters.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbDetectorConstruction.hh" +#include "RichTbHall.hh" +#include "RichTbMaterial.hh" +#include "G4Box.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4SDManager.hh" +#include "RichTbSD.hh" + + + +RichTbDetectorConstruction::RichTbDetectorConstruction(){; } +RichTbDetectorConstruction::RichTbDetectorConstruction(RichTbRunConfig* RConfig){ + + runConfiguration=RConfig; + } +RichTbDetectorConstruction::~RichTbDetectorConstruction(){;} + +G4VPhysicalVolume* RichTbDetectorConstruction::Construct(){ + + RichTbRunConfig* rConfig= runConfiguration; + + InitializeRichTbMaterial(); + HistoRichTbMaterialProperties(rConfig); + + rMaterial = new RichTbMaterial(rConfig); + + InitializeRichTbGeometry(); + + + rTbHall = new RichTbHall(rMaterial); + + rTbComponent = new RichTbComponent(rMaterial,rTbHall,rConfig,true); + + rTbPhotoDetector = new RichTbPhotoDetector(rMaterial,rTbComponent,rConfig,true); + + + //Now for the sensitive Detector + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + G4String HpdSDname = "RichTbSD"; + G4String RichTbHColname="RichTbHitsCollection"; + + + RichTbSD* HpdSD = new RichTbSD( HpdSDname, + NumberOfHpds,NumberOfSiDetSectors, + NumberOfPadHpdSiPixels, + RichTbHColname ); + + + + G4String ROgeometryName = "RichTbROGeom"; + + rTbROGeom = new RichTbROGeometry(ROgeometryName,rMaterial, rConfig); + + rTbROGeom -> BuildROGeometry(); + HpdSD ->SetROgeometry( rTbROGeom); + SDman->AddNewDetector( HpdSD ); + G4int NumHpd = NumberOfHpds; + + for (G4int ihpd=0 ; ihpd < NumHpd ; ihpd++ ) { + G4int NumSiSect=rTbPhotoDetector-> getRichHPD(ihpd) -> + getNumSectInHpd(); + for (G4int isec=0; isec < NumSiSect; isec++) { + G4LogicalVolume* RichTbSiDetSect_LV =rTbPhotoDetector -> + getRichHPD(ihpd)-> getRichHpdSiDetSect(isec)-> + getHpdSiSectLogicalVolume(); + RichTbSiDetSect_LV->SetSensitiveDetector( HpdSD ); + } + } + + + rTbGraphics = new RichTbGraphics(rTbHall,rTbComponent, + rTbPhotoDetector,rTbROGeom, rConfig ); + + + return rTbHall->getRichTbHallPhysicalVolume(); +} + + + + + + diff --git a/examples/advanced/Rich/src/RichTbEventAction.cc b/examples/advanced/Rich/src/RichTbEventAction.cc new file mode 100644 index 0000000000..f9ff95abb0 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbEventAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbEventAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbEventAction.hh" +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4SDManager.hh" +#include "G4VVisManager.hh" +#include "RichTbVisManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" +#include "RichTbSD.hh" +#include "RichTbHit.hh" +#include "RichTbRunConfig.hh" +#include "RichTbAnalysisManager.hh" +#include "RichTbIOData.hh" + +RichTbEventAction::RichTbEventAction(){ + RichTbCollID = -1; + +} + +RichTbEventAction::RichTbEventAction(RichTbRunConfig* RConfig, + RichTbVisManager* RVisManager, RichTbIOData* RIOData){ + RichTbCollID = -1; + runConfiguration=RConfig; + + pVisManager=RVisManager; + rTbIOData = RIOData; + + +} +RichTbEventAction::~RichTbEventAction(){ + + +} +void RichTbEventAction::BeginOfEventAction(const G4Event* evt){ + + + + + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + if(RichTbCollID<0){ + + + + RichTbCollID = SDman->GetCollectionID("RichTbHitsCollection"); + + } + +#ifdef G4ANALYSIS_USE + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + analysis->BeginOfEventAnalysis(evt); + +#endif + + +} +void RichTbEventAction::EndOfEventAction(const G4Event* evt){ + + RichTbRunConfig* RConfig = runConfiguration; + + // first get the trajectories + G4TrajectoryContainer* trajectoryContainer=evt->GetTrajectoryContainer(); + G4int n_trajectories=0; + + G4int totalhits = 0; + + if(trajectoryContainer){n_trajectories=trajectoryContainer->entries(); + G4cout << " " << n_trajectories + << " Tracks are stored in Trajectorycontainer." << G4endl; + } + // Now get the hits + + if(RichTbCollID<0) return; + + + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + RichTbHitsCollection* RHC = 0; + G4int n_hit = 0; + + if(HCE) + { + + RHC = (RichTbHitsCollection*)(HCE->GetHC(RichTbCollID)); + + } + + + + if(RHC) + { + + + + n_hit = RHC->entries(); + + + for(G4int i=0;igetRichTbDrawTrajectory() > 0){ + for (G4int i=0; iGetTrajectoryContainer()))[i]->DrawTrajectory(); + } + } + + + //now for the hits. + + if(RHC) { + G4int n_hith = RHC->entries(); + + + + + for (G4int ih=0; ihDrawWithVisM(pVisManager); + } + + } + //Now to Fill the Histograms + +#ifdef G4ANALYSIS_USE + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + analysis->EndOfEventAnalysis(evt); +#endif + + // Now to write out the data + if(RConfig -> DoWriteOutputFile() ) { + + rTbIOData -> WriteOutEventHeaderData(evt); + rTbIOData -> WriteOutHitData(evt); + G4cout << ">>> End of Event Number " << evt->GetEventID() << G4endl; + + } + +} + + + + + + + + + diff --git a/examples/advanced/Rich/src/RichTbGeometryParameters.cc b/examples/advanced/Rich/src/RichTbGeometryParameters.cc new file mode 100644 index 0000000000..2a3a40b7dc --- /dev/null +++ b/examples/advanced/Rich/src/RichTbGeometryParameters.cc @@ -0,0 +1,427 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbAnalysisManager.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "globals.hh" +#include "RichTbGeometryParameters.hh" +G4double GetCurAerogelLength(G4int Aerognum ) { + return 2.0*AgelHalfZ[Aerognum]; +} +RichTbPadHpdSiPixPos::RichTbPadHpdSiPixPos(G4int ipixelnum) { + //coord system such that Origin at the top of a sector; + // which is near the center of the anode. + //The X is along the bottom and Y goes radially outward (from top to + // bottom). + + + + icurpixel=ipixelnum; + PadHpdSiPixPosX=PixColNumSect[ipixelnum]*XsizePix; + if(ipixelnum == BigPixelNum ) { + PadHpdSiPixPosY=PixRowNumSect[ipixelnum]*YsizePix+RowInitPointBigPixel; + }else { + PadHpdSiPixPosY=PixRowNumSect[ipixelnum]*YsizePix+RowInitPoint; + + } +} +RichTbPadHpdSiPixPos::~RichTbPadHpdSiPixPos(){ ; } +void InitializeRichTbGeometry(){ + PixRowNumSect[59-1]=0.0; + PixRowNumSect[70-1]=1.0; + PixRowNumSect[60-1]=2.0; + PixRowNumSect[82-1]=3.0; + PixRowNumSect[47-1]=3.0; + PixRowNumSect[81-1]=4.0; + PixRowNumSect[48-1]=4.0; + + PixRowNumSect[91-1]=5.0; + PixRowNumSect[69-1]=5.0; + PixRowNumSect[38-1]=5.0; + + PixRowNumSect[101-1]=6.0; + PixRowNumSect[80-1]=6.0; + PixRowNumSect[49-1]=6.0; + PixRowNumSect[28-1]=6.0; + + PixRowNumSect[100-1]=7.0; + PixRowNumSect[79-1]=7.0; + PixRowNumSect[50-1]=7.0; + PixRowNumSect[29-1]=7.0; + + PixRowNumSect[99-1]=8.0; + PixRowNumSect[78-1]=8.0; + PixRowNumSect[51-1]=8.0; + PixRowNumSect[30-1]=8.0; + + PixRowNumSect[109-1]=9.0; + PixRowNumSect[90-1]=9.0; + PixRowNumSect[61-1]=9.0; + PixRowNumSect[39-1]=9.0; + PixRowNumSect[20-1]=9.0; + + PixRowNumSect[108-1]=10.0; + PixRowNumSect[89-1]=10.0; + PixRowNumSect[68-1]=10.0; + PixRowNumSect[40-1]=10.0; + PixRowNumSect[21-1]=10.0; + + PixRowNumSect[107-1]=11.0; + PixRowNumSect[88-1]=11.0; + PixRowNumSect[62-1]=11.0; + PixRowNumSect[41-1]=11.0; + PixRowNumSect[22-1]=11.0; + + PixRowNumSect[116-1]=12.0; + PixRowNumSect[98-1]=12.0; + PixRowNumSect[77-1]=12.0; + PixRowNumSect[52-1]=12.0; + PixRowNumSect[31-1]=12.0; + PixRowNumSect[13-1]=12.0; + + PixRowNumSect[115-1]=13.0; + PixRowNumSect[97-1]=13.0; + PixRowNumSect[76-1]=13.0; + PixRowNumSect[53-1]=13.0; + PixRowNumSect[32-1]=13.0; + PixRowNumSect[14-1]=13.0; + + PixRowNumSect[114-1]=14.0; + PixRowNumSect[96-1]=14.0; + PixRowNumSect[75-1]=14.0; + PixRowNumSect[54-1]=14.0; + PixRowNumSect[33-1]=14.0; + PixRowNumSect[15-1]=14.0; + + PixRowNumSect[121-1]=15.0; + PixRowNumSect[106-1]=15.0; + PixRowNumSect[87-1]=15.0; + PixRowNumSect[67-1]=15.0; + PixRowNumSect[42-1]=15.0; + PixRowNumSect[23-1]=15.0; + PixRowNumSect[8-1]=15.0; + + PixRowNumSect[120-1]=16.0; + PixRowNumSect[105-1]=16.0; + PixRowNumSect[86-1]=16.0; + PixRowNumSect[63-1]=16.0; + PixRowNumSect[43-1]=16.0; + PixRowNumSect[24-1]=16.0; + PixRowNumSect[9-1]=16.0; + + PixRowNumSect[119-1]=17.0; + PixRowNumSect[104-1]=17.0; + PixRowNumSect[85-1]=17.0; + PixRowNumSect[66-1]=17.0; + PixRowNumSect[44-1]=17.0; + PixRowNumSect[25-1]=17.0; + PixRowNumSect[10-1]=17.0; + + PixRowNumSect[125-1]=18.0; + PixRowNumSect[113-1]=18.0; + PixRowNumSect[95-1]=18.0; + PixRowNumSect[74-1]=18.0; + PixRowNumSect[55-1]=18.0; + PixRowNumSect[34-1]=18.0; + PixRowNumSect[16-1]=18.0; + PixRowNumSect[4-1]=18.0; + + PixRowNumSect[124-1]=19.0; + PixRowNumSect[112-1]=19.0; + PixRowNumSect[94-1]=19.0; + PixRowNumSect[73-1]=19.0; + PixRowNumSect[56-1]=19.0; + PixRowNumSect[35-1]=19.0; + PixRowNumSect[17-1]=19.0; + PixRowNumSect[5-1]=19.0; + + PixRowNumSect[123-1]=20.0; + PixRowNumSect[111-1]=20.0; + PixRowNumSect[93-1]=20.0; + PixRowNumSect[72-1]=20.0; + PixRowNumSect[57-1]=20.0; + PixRowNumSect[36-1]=20.0; + PixRowNumSect[18-1]=20.0; + PixRowNumSect[6-1]=20.0; + + PixRowNumSect[127-1]=21.0; + PixRowNumSect[118-1]=21.0; + PixRowNumSect[103-1]=21.0; + PixRowNumSect[84-1]=21.0; + PixRowNumSect[65-1]=21.0; + PixRowNumSect[45-1]=21.0; + PixRowNumSect[26-1]=21.0; + PixRowNumSect[11-1]=21.0; + PixRowNumSect[2-1]=21.0; + + PixRowNumSect[126-1]=22.0; + PixRowNumSect[117-1]=22.0; + PixRowNumSect[102-1]=22.0; + PixRowNumSect[83-1]=22.0; + PixRowNumSect[64-1]=22.0; + PixRowNumSect[46-1]=22.0; + PixRowNumSect[27-1]=22.0; + PixRowNumSect[12-1]=22.0; + PixRowNumSect[3-1]=22.0; + + PixRowNumSect[128-1]=23.0; + PixRowNumSect[122-1]=23.0; + PixRowNumSect[110-1]=23.0; + PixRowNumSect[92-1]=23.0; + PixRowNumSect[71-1]=23.0; + PixRowNumSect[58-1]=23.0; + PixRowNumSect[37-1]=23.0; + PixRowNumSect[19-1]=23.0; + PixRowNumSect[7-1]=23.0; + PixRowNumSect[1-1]=23.0; + + + + PixColNumSect[59-1]=0.0; + PixColNumSect[70-1]=0.0; + PixColNumSect[60-1]=0.0; + PixColNumSect[82-1]=-0.5; + PixColNumSect[47-1]=0.5; + PixColNumSect[81-1]=-0.5; + PixColNumSect[48-1]=0.5; + + PixColNumSect[91-1]=-1.0; + PixColNumSect[69-1]=0.0; + PixColNumSect[38-1]=1.0; + + PixColNumSect[101-1]=-1.5; + PixColNumSect[80-1]=-0.5; + PixColNumSect[49-1]=0.5; + PixColNumSect[28-1]=1.5; + + PixColNumSect[100-1]=-1.5; + PixColNumSect[79-1]=-0.5; + PixColNumSect[50-1]=0.5; + PixColNumSect[29-1]=1.5; + + PixColNumSect[99-1]=-1.5; + PixColNumSect[78-1]=-0.5; + PixColNumSect[51-1]=0.5; + PixColNumSect[30-1]=1.5; + + PixColNumSect[109-1]=-2.0; + PixColNumSect[90-1]=-1.0; + PixColNumSect[61-1]=0.0; + PixColNumSect[39-1]=1.0; + PixColNumSect[20-1]=2.0; + + PixColNumSect[108-1]=-2.0; + PixColNumSect[89-1]=-1.0; + PixColNumSect[68-1]=0.0; + PixColNumSect[40-1]=1.0; + PixColNumSect[21-1]=2.0; + + PixColNumSect[107-1]=-2.0; + PixColNumSect[88-1]=-1.0; + PixColNumSect[62-1]=0.0; + PixColNumSect[41-1]=1.0; + PixColNumSect[22-1]=2.0; + + PixColNumSect[116-1]=-2.5; + PixColNumSect[98-1]=-1.5; + PixColNumSect[77-1]=-0.5; + PixColNumSect[52-1]=0.5; + PixColNumSect[31-1]=1.5; + PixColNumSect[13-1]=2.5; + + PixColNumSect[115-1]=-2.5; + PixColNumSect[97-1]=-1.5; + PixColNumSect[76-1]=-0.5; + PixColNumSect[53-1]=0.5; + PixColNumSect[32-1]=1.5; + PixColNumSect[14-1]=2.5; + + PixColNumSect[114-1]=-2.5; + PixColNumSect[96-1]=-1.5; + PixColNumSect[75-1]=-0.5; + PixColNumSect[54-1]=0.5; + PixColNumSect[33-1]=1.5; + PixColNumSect[15-1]=2.5; + + PixColNumSect[121-1]=-3.0; + PixColNumSect[106-1]=-2.0; + PixColNumSect[87-1]=-1.0; + PixColNumSect[67-1]=0.0; + PixColNumSect[42-1]=1.0; + PixColNumSect[23-1]=2.0; + PixColNumSect[8-1]=3.0; + + PixColNumSect[120-1]=-3.0; + PixColNumSect[105-1]=-2.0; + PixColNumSect[86-1]=-1.0; + PixColNumSect[63-1]=0.0; + PixColNumSect[43-1]=1.0; + PixColNumSect[24-1]=2.0; + PixColNumSect[9-1]=3.0; + + PixColNumSect[119-1]=-3.0; + PixColNumSect[104-1]=-2.0; + PixColNumSect[85-1]=-1.0; + PixColNumSect[66-1]=0.0; + PixColNumSect[44-1]=1.0; + PixColNumSect[25-1]=2.0; + PixColNumSect[10-1]=3.0; + + PixColNumSect[125-1]=-3.5; + PixColNumSect[113-1]=-2.5; + PixColNumSect[95-1]=-1.5; + PixColNumSect[74-1]=-0.5; + PixColNumSect[55-1]=0.5; + PixColNumSect[34-1]=1.5; + PixColNumSect[16-1]=2.5; + PixColNumSect[4-1]=3.5; + + PixColNumSect[124-1]=-3.5; + PixColNumSect[112-1]=-2.5; + PixColNumSect[94-1]=-1.5; + PixColNumSect[73-1]=-0.5; + PixColNumSect[56-1]=0.5; + PixColNumSect[35-1]=1.5; + PixColNumSect[17-1]=2.5; + PixColNumSect[5-1]=3.5; + + PixColNumSect[123-1]=-3.5; + PixColNumSect[111-1]=-2.5; + PixColNumSect[93-1]=-1.5; + PixColNumSect[72-1]=-0.5; + PixColNumSect[57-1]=0.5; + PixColNumSect[36-1]=1.5; + PixColNumSect[18-1]=2.5; + PixColNumSect[6-1]=3.5; + + PixColNumSect[127-1]=-4.0; + PixColNumSect[118-1]=-3.0; + PixColNumSect[103-1]=-2.0; + PixColNumSect[84-1]=-1.0; + PixColNumSect[65-1]=0.0; + PixColNumSect[45-1]=1.0; + PixColNumSect[26-1]=2.0; + PixColNumSect[11-1]=3.0; + PixColNumSect[2-1]=4.0; + + PixColNumSect[126-1]=-4.0; + PixColNumSect[117-1]=-3.0; + PixColNumSect[102-1]=-2.0; + PixColNumSect[83-1]=-1.0; + PixColNumSect[64-1]=0.0; + PixColNumSect[46-1]=1.0; + PixColNumSect[27-1]=2.0; + PixColNumSect[12-1]=3.0; + PixColNumSect[3-1]=4.0; + + PixColNumSect[128-1]=-4.5; + PixColNumSect[122-1]=-3.5; + PixColNumSect[110-1]=-2.5; + PixColNumSect[92-1]=-1.5; + PixColNumSect[71-1]=-0.5; + PixColNumSect[58-1]=0.5; + PixColNumSect[37-1]=1.5; + PixColNumSect[19-1]=2.5; + PixColNumSect[7-1]=3.5; + PixColNumSect[1-1]=4.5; + +for (G4int ipixel=0;ipixel +#include "RichTbDetectorConstruction.hh" +#include "RichTbHall.hh" +#include "RichTbComponent.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbPhotoDetector.hh" +#include "RichTbHpd.hh" +#include "RichTbSiDet.hh" +#include "RichTbGraphics.hh" +#include "G4LogicalVolume.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +#include "RichTbRunConfig.hh" +RichTbGraphics::RichTbGraphics(){ ; } +RichTbGraphics::RichTbGraphics(RichTbHall* RTbHall, + RichTbComponent* RTbComponent, + RichTbPhotoDetector* RTbPhotoDetector, + RichTbROGeometry* RTbROGeom, + RichTbRunConfig* RConfig){ + + //For Following variables 0 means make the volume invisible; + // 1 means make it visible as a solid. + // 2 means make it visible as a wireframe. + G4int RichTbHall_vis= RConfig->getRichTbHall_visib(); + G4int RichTbEnclosure_vis = RConfig->getRichTbEnclosure_visib() ; + G4int RichTbRadFrame_vis = RConfig->getRichTbRadFrame_visib() ; + G4int RichTbRadUpW_vis = RConfig->getRichTbRadUpW_visib() ; + G4int RichTbRadDnW_vis = RConfig->getRichTbRadDnW_visib() ; + G4int RichTbAerogel_vis = RConfig->getRichTbAerogel_visib() ; + G4int RichTbAerogelWrap_vis = RConfig->getRichTbAerogelWrap_visib() ; + G4int RichTbAerogelWrapTop_vis = RichTbAerogelWrap_vis; + G4int RichTbAerogelWrapBot_vis = RichTbAerogelWrap_vis; + G4int RichTbFilter_vis = RConfig->getRichTbFilter_visib() ; + G4int RichTbMirror_vis = RConfig->getRichTbMirror_visib(); + G4int RichTbHpdMaster_vis= RConfig->getRichTbHpdMaster_visib() ; + G4int RichTbHpdEnvelopeTube_vis= RConfig->getRichTbHpdEnvelopeTube_visib(); + G4int RichTbHpdQuartzW_vis= RConfig->getRichTbHpdQuartzW_visib() ; + G4int RichTbHpdPhCathode_vis= RConfig->getRichTbHpdPhCathode_visib() ; + G4int RichTbHpdSiDet_vis= RConfig->getRichTbHpdSiDet_visib() ; + G4int RichTbHpdSectCoat_vis =RConfig->getRichTbHpdSectCoat_visib() ; + G4int RichTbHpdSiPx_vis= RConfig->getRichTbHpdSiPx_visib() ; + + // + //Now for the RichTbHall + + G4LogicalVolume* RichTbHall_LV = RTbHall->getRichTbHallLogicalVolume(); + if(RichTbHall_vis == 0 ) { + RichTbHall_LV->SetVisAttributes(G4VisAttributes::Invisible); + }else { + G4VisAttributes* RichTbHall_logVisAtt + = new G4VisAttributes(G4Colour(0.,1.,1.)); + if(RichTbHall_vis == 2 ){ + RichTbHall_logVisAtt->SetForceWireframe(true); + } + RichTbHall_logVisAtt->SetVisibility(true); + RichTbHall_LV->SetVisAttributes(RichTbHall_logVisAtt); + // + } + // + // + //Now for the RichTbEnclosure + + G4LogicalVolume* RichTbEnclosure_LV = + RTbComponent->getEnclosureLogicalVolume(); + + if(RichTbEnclosure_vis == 0 ){ + RichTbEnclosure_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbEnclosure_logVisAtt + = new G4VisAttributes(G4Colour(1.,1.,0.)); + if( RichTbEnclosure_vis == 2) { + RichTbEnclosure_logVisAtt->SetForceWireframe(true); + }else { + RichTbEnclosure_logVisAtt->SetForceSolid(true); + } + RichTbEnclosure_logVisAtt->SetVisibility(true); + RichTbEnclosure_LV-> + SetVisAttributes(RichTbEnclosure_logVisAtt); + } + // + //Now for the Radiator frame + + G4LogicalVolume* RichTbRadFrame_LV = + RTbComponent->getRadFrameLogicalVolume(); + + if(RichTbRadFrame_vis == 0 ){ + RichTbRadFrame_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbRadFrame_logVisAtt + = new G4VisAttributes(G4Colour(1.,1.,0.)); + if( RichTbRadFrame_vis == 2) { + RichTbRadFrame_logVisAtt->SetForceWireframe(true); + }else { + RichTbRadFrame_logVisAtt->SetForceSolid(true); + } + RichTbRadFrame_logVisAtt->SetVisibility(true); + RichTbRadFrame_LV-> + SetVisAttributes(RichTbRadFrame_logVisAtt); + } + // + //Now for the upstream window of the radiator frame + + G4LogicalVolume* RichTbRadUpW_LV = + RTbComponent->getRadUpWLogicalVolume(); + + if(RichTbRadUpW_vis == 0 ){ + RichTbRadUpW_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbRadUpW_logVisAtt + = new G4VisAttributes(G4Colour(0.0,0.3,0.7)); + if( RichTbRadUpW_vis == 2) { + RichTbRadUpW_logVisAtt->SetForceWireframe(true); + }else { + RichTbRadUpW_logVisAtt->SetForceSolid(true); + } + RichTbRadUpW_logVisAtt->SetVisibility(true); + RichTbRadUpW_LV-> + SetVisAttributes(RichTbRadUpW_logVisAtt); + } + // + // Now for the downstream window of the radiator frame + G4LogicalVolume* RichTbRadDnW_LV = + RTbComponent->getRadDnWLogicalVolume(); + + if(RichTbRadDnW_vis == 0 ){ + RichTbRadDnW_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbRadDnW_logVisAtt + = new G4VisAttributes(G4Colour(0.0,0.2,0.8)); + if( RichTbRadDnW_vis == 2) { + RichTbRadDnW_logVisAtt->SetForceWireframe(true); + }else { + RichTbRadDnW_logVisAtt->SetForceSolid(true); + } + RichTbRadDnW_logVisAtt->SetVisibility(true); + RichTbRadDnW_LV-> + SetVisAttributes(RichTbRadDnW_logVisAtt); + } + // + // + //Now for the Aerogel + + G4int NumTiles=RConfig->GetNumberOfAerogelTiles(); + for (G4int ng=0; ng< NumTiles; ng++ ) { + G4LogicalVolume* RichTbAerogel_LV = + RTbComponent->getAgelLogicalVolume(ng); + + if(RichTbAerogel_vis == 0 ){ + RichTbAerogel_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbAerogel_logVisAtt; + if(ng == 0 || ng == 2 || ng || 4 ) { + RichTbAerogel_logVisAtt = new G4VisAttributes(G4Colour(1.,0.2,0.8)); + }else { + + RichTbAerogel_logVisAtt = new G4VisAttributes(G4Colour(0.7,0.6,0.9)); + + } + + if( RichTbAerogel_vis == 2) { + RichTbAerogel_logVisAtt->SetForceWireframe(true); + }else { + RichTbAerogel_logVisAtt->SetForceSolid(true); + } + RichTbAerogel_logVisAtt->SetVisibility(true); + RichTbAerogel_LV-> + SetVisAttributes(RichTbAerogel_logVisAtt); + } + + //Now for the top Wrap of the Aerogel tile. + + if( RTbComponent->getAgelWrapTopLogicalVolume(ng)) { + G4LogicalVolume* RichTbAerogelWrapTop_LV = + RTbComponent->getAgelWrapTopLogicalVolume(ng); + + if(RichTbAerogelWrapTop_vis == 0 ){ + RichTbAerogelWrapTop_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbAerogelWrapTop_logVisAtt; + if(ng == 0 || ng == 2 || ng || 4 ) { + RichTbAerogelWrapTop_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.2,0.6)); + }else { + + RichTbAerogelWrapTop_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.4,0.8)); + + } + + if( RichTbAerogelWrapTop_vis == 2) { + RichTbAerogelWrapTop_logVisAtt->SetForceWireframe(true); + }else { + RichTbAerogelWrapTop_logVisAtt->SetForceSolid(true); + } + RichTbAerogelWrapTop_logVisAtt->SetVisibility(true); + RichTbAerogelWrapTop_LV-> + SetVisAttributes(RichTbAerogelWrapTop_logVisAtt); + } + } + //Now for the Bottom Wrap of the Aerogel tile. + + if(RTbComponent->getAgelWrapBotLogicalVolume(ng)){ + G4LogicalVolume* RichTbAerogelWrapBot_LV = + RTbComponent->getAgelWrapBotLogicalVolume(ng); + + if(RichTbAerogelWrapBot_vis == 0 ){ + RichTbAerogelWrapBot_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbAerogelWrapBot_logVisAtt; + if(ng == 0 || ng == 2 || ng || 4 ) { + RichTbAerogelWrapBot_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.2,0.6)); + }else { + + RichTbAerogelWrapBot_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.4,0.8)); + + } + + if( RichTbAerogelWrapBot_vis == 2) { + RichTbAerogelWrapBot_logVisAtt->SetForceWireframe(true); + }else { + RichTbAerogelWrapBot_logVisAtt->SetForceSolid(true); + } + RichTbAerogelWrapBot_logVisAtt->SetVisibility(true); + RichTbAerogelWrapBot_LV-> + SetVisAttributes(RichTbAerogelWrapBot_logVisAtt); + } + + } + +} + // + // + //Now for the Filter + // First verify that the filter exists. + G4int Filnum=RConfig->GetFilterTNumber() ; + if(Filnum >=0 ) { + + G4LogicalVolume* RichTbFilter_LV = + RTbComponent->getFilterLogicalVolume(); + + if(RichTbFilter_vis == 0 ){ + RichTbFilter_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbFilter_logVisAtt + = new G4VisAttributes(G4Colour(0.3,0.9,0.4)); + if( RichTbFilter_vis == 2) { + RichTbFilter_logVisAtt->SetForceWireframe(true); + }else { + RichTbFilter_logVisAtt->SetForceSolid(true); + } + RichTbFilter_logVisAtt->SetVisibility(true); + RichTbFilter_LV-> + SetVisAttributes(RichTbFilter_logVisAtt); + } + } + // + // + // + //Now for the Mirror + G4LogicalVolume* RichTbMirror_LV = + RTbComponent->getMirrorLogicalVolume(); + + if(RichTbMirror_vis == 0 ){ + RichTbMirror_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + G4VisAttributes* RichTbMirror_logVisAtt = + new G4VisAttributes(G4Colour(0.,0.5,0.5)); + if(RichTbMirror_vis == 2 ){ + RichTbMirror_logVisAtt->SetForceWireframe(true); + }else{ + RichTbMirror_logVisAtt->SetForceWireframe(false); + RichTbMirror_logVisAtt->SetForceSolid(true); + } + RichTbMirror_logVisAtt->SetVisibility(true); + + RichTbMirror_LV-> + SetVisAttributes(RichTbMirror_logVisAtt); + } + + //Now for the HPDs. + G4int numhpd= RTbPhotoDetector->getNumberOfHpds(); + for(G4int ihpd=0; ihpdgetRichHPD(ihpd)->getHpdLogicalVolume(); + + if(RichTbHpdMaster_vis == 0 ){ + RichTbHpdMaster_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdMaster_logVisAtt = + new G4VisAttributes(G4Colour(0.8,0.6,0.2)); + if(RichTbHpdMaster_vis == 2 ){ + RichTbHpdMaster_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdMaster_logVisAtt->SetForceWireframe(false); + RichTbHpdMaster_logVisAtt->SetForceSolid(true); + } + RichTbHpdMaster_logVisAtt->SetVisibility(true); + + RichTbHpdMaster_LV-> + SetVisAttributes(RichTbHpdMaster_logVisAtt); + + + } + //hpd Envelope Tube + G4LogicalVolume* RichTbHpdEnvelopeTube_LV = + RTbPhotoDetector->getRichHPD(ihpd)->getHpdEnvelopeTubeGrandLogicalVolume(); + + + if(RichTbHpdEnvelopeTube_vis == 0 ){ + RichTbHpdEnvelopeTube_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdEnvelopeTube_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.2,0.8)); + if(RichTbHpdEnvelopeTube_vis == 2 ){ + RichTbHpdEnvelopeTube_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdEnvelopeTube_logVisAtt->SetForceWireframe(false); + RichTbHpdEnvelopeTube_logVisAtt->SetForceSolid(true); + } + RichTbHpdEnvelopeTube_logVisAtt->SetVisibility(true); + + RichTbHpdEnvelopeTube_LV-> + SetVisAttributes(RichTbHpdEnvelopeTube_logVisAtt); + + } + + //hpd quartz window + G4LogicalVolume* RichTbHpdQuartzW_LV = + RTbPhotoDetector->getRichHPD(ihpd)->getHpdQuartzWLogicalVolume(); + + + if(RichTbHpdQuartzW_vis == 0 ){ + RichTbHpdQuartzW_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdQuartzW_logVisAtt = + new G4VisAttributes(G4Colour(0.8,0.8,0.8)); + if(RichTbHpdQuartzW_vis == 2 ){ + RichTbHpdQuartzW_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdQuartzW_logVisAtt->SetForceWireframe(false); + RichTbHpdQuartzW_logVisAtt->SetForceSolid(true); + } + RichTbHpdQuartzW_logVisAtt->SetVisibility(true); + + RichTbHpdQuartzW_LV-> + SetVisAttributes(RichTbHpdQuartzW_logVisAtt); + + } + + //hpd Ph Cathode + G4LogicalVolume* RichTbHpdPhCathode_LV = + RTbPhotoDetector->getRichHPD(ihpd)->getHpdPhCathodeLogicalVolume(); + + + if(RichTbHpdPhCathode_vis == 0 ){ + RichTbHpdPhCathode_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdPhCathode_logVisAtt = + new G4VisAttributes(G4Colour(0.2,0.3,0.3)); + if(RichTbHpdPhCathode_vis == 2 ){ + RichTbHpdPhCathode_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdPhCathode_logVisAtt->SetForceWireframe(false); + RichTbHpdPhCathode_logVisAtt->SetForceSolid(true); + } + RichTbHpdPhCathode_logVisAtt->SetVisibility(true); + + RichTbHpdPhCathode_LV-> + SetVisAttributes(RichTbHpdPhCathode_logVisAtt); + + } + + + //Hpd Silicon Detector sectors + for(G4int isect=0; isectgetRichHPD(ihpd)->getRichHpdSiDetSect(isect)-> + getHpdSiSectLogicalVolume(); + + if(RichTbHpdSiDet_vis == 0 ){ + RichTbHpdSiDet_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdSiDet_logVisAtt = + new G4VisAttributes(G4Colour(0.6,0.6,0.9)); + if(RichTbHpdSiDet_vis == 2 ){ + RichTbHpdSiDet_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdSiDet_logVisAtt->SetForceWireframe(false); + RichTbHpdSiDet_logVisAtt->SetForceSolid(true); + } + RichTbHpdSiDet_logVisAtt->SetVisibility(true); + + RichTbHpdSiDet_LV-> + SetVisAttributes(RichTbHpdSiDet_logVisAtt); + + } + + //Coating on the silicon sector + + + G4LogicalVolume* RichTbHpdSectCoat_LV = + RTbPhotoDetector->getRichHPD(ihpd)->getRichHpdSiDetSect(isect)-> + getHpdSectCoatLogicalVolume(); + + if(RichTbHpdSectCoat_vis == 0 ){ + RichTbHpdSectCoat_LV-> + SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdSectCoat_logVisAtt = + new G4VisAttributes(G4Colour(0.8,0.3,0.9)); + if(RichTbHpdSectCoat_vis == 2 ){ + RichTbHpdSectCoat_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdSectCoat_logVisAtt->SetForceWireframe(false); + RichTbHpdSectCoat_logVisAtt->SetForceSolid(true); + } + RichTbHpdSectCoat_logVisAtt->SetVisibility(true); + + RichTbHpdSectCoat_LV-> + SetVisAttributes(RichTbHpdSectCoat_logVisAtt); + + } + G4int numPix=RTbROGeom -> getROPhotDet()-> getRichHPD(ihpd) -> + getRichHpdSiDetSect(isect) ->getNumSiPixels(); + + + for(G4int ipixel=0; ipixel getROPhotDet() -> getRichHPD(ihpd) -> + getRichHpdSiDetSect(isect) -> getHpdSiPx(ipixel) -> + getHpdSiPixelLogicalVolume(); + + + if(RichTbHpdSiPx_vis == 0 ){ + RichTbHpdSiPx_LV->SetVisAttributes (G4VisAttributes::Invisible); + }else { + + G4VisAttributes* RichTbHpdSiPx_logVisAtt = + new G4VisAttributes(G4Colour(0.0,0.7,0.6)); + if(RichTbHpdSiPx_vis == 2 ){ + RichTbHpdSiPx_logVisAtt->SetForceWireframe(true); + }else{ + RichTbHpdSiPx_logVisAtt->SetForceWireframe(false); + RichTbHpdSiPx_logVisAtt->SetForceSolid(true); + } + RichTbHpdSiPx_logVisAtt->SetVisibility(true); + + RichTbHpdSiPx_LV-> SetVisAttributes(RichTbHpdSiPx_logVisAtt); + + } + + + + + } + + } + } + + +} +RichTbGraphics::~RichTbGraphics(){;} + + + + + + + diff --git a/examples/advanced/Rich/src/RichTbHall.cc b/examples/advanced/Rich/src/RichTbHall.cc new file mode 100644 index 0000000000..6657f9b214 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbHall.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHall.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include "RichTbDetectorConstruction.hh" +#include "RichTbHall.hh" +#include "RichTbMaterial.hh" +#include "RichTbGeometryParameters.hh" +#include "G4Box.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" + +RichTbHall::RichTbHall() { ; } +RichTbHall::RichTbHall(RichTbMaterial* RMaterial) { + + G4Box * RichTbHallBox + = new G4Box("World",ExpHallHalfX,ExpHallHalfY,ExpHallHalfZ); + G4LogicalVolume * RichTbHallLog + = new G4LogicalVolume(RichTbHallBox,RMaterial->getAir(),"World",0,0,0); + G4VPhysicalVolume * RichTbHallPhys + = new G4PVPlacement(0,G4ThreeVector(),"World",RichTbHallLog,0,false,0); + + RichTbHallLVol = RichTbHallLog; + RichTbHallPVol = RichTbHallPhys; + + + + } +RichTbHall::~RichTbHall() {; } diff --git a/examples/advanced/Rich/src/RichTbHit.cc b/examples/advanced/Rich/src/RichTbHit.cc new file mode 100644 index 0000000000..f4e777e8fa --- /dev/null +++ b/examples/advanced/Rich/src/RichTbHit.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHit.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4Transform3D.hh" +#include "G4LogicalVolume.hh" +#include "RichTbVisManager.hh" +#include "G4Transform3D.hh" + +G4Allocator RichTbHitAllocator; + +RichTbHit::RichTbHit() +{;} + +RichTbHit::~RichTbHit() +{;} + +RichTbHit::RichTbHit(const RichTbHit &right) +{ + edep = right.edep; + posAtSilicon = right.posAtSilicon; + posAtPhotoCathode=right.posAtPhotoCathode; + CurHpdNum=right.CurHpdNum; + CurSectNum=right.CurSectNum; + CurPixelNum=right.CurPixelNum; +} + +const RichTbHit& RichTbHit::operator=(const RichTbHit &right) +{ + edep = right.edep; + posAtSilicon = right.posAtSilicon; + posAtPhotoCathode=right.posAtPhotoCathode; + CurHpdNum=right.CurHpdNum; + CurSectNum=right.CurSectNum; + CurPixelNum=right.CurPixelNum; + + return *this; +} + +int RichTbHit::operator==(const RichTbHit &right) const +{ + return 0; +} + +void RichTbHit::Draw() +{ + + // The folowing does not work anymore .. SE 26-04-01 + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + + G4Transform3D dummy; + + G4Circle circle(posAtPhotoCathode); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.0,0.0,0.0); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle,dummy); + } +} +void RichTbHit::DrawWithVisM(RichTbVisManager* pVisManager) +{ + + G4VisManager* pVVisManager = pVisManager; + if(pVVisManager) + { + G4Transform3D dummy2; + G4Circle circle(posAtPhotoCathode); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.0,0.0,0.0); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle,dummy2); + } +} +void RichTbHit::Print() +{;} + + +// This is a forward declarations of an instantiated G4Allocator object. +// It has been added in order to make code portable for the GNU g++ +// (release 2.7.2) compiler. +// Whenever a new Type is instantiated via G4Allocator, it has to be forward +// declared to make object code (compiled with GNU g++) link successfully. +// +#ifdef GNU_GCC + template class G4Allocator; +#endif + + diff --git a/examples/advanced/Rich/src/RichTbHpd.cc b/examples/advanced/Rich/src/RichTbHpd.cc new file mode 100644 index 0000000000..0c088d4cf8 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbHpd.cc @@ -0,0 +1,290 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbHpd.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include "globals.hh" +#include "G4Box.hh" +#include "G4Trd.hh" +#include "G4Cons.hh" +#include "G4Tubs.hh" +#include "G4Sphere.hh" +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UnionSolid.hh" +#include "RichTbGeometryParameters.hh" +#include "G4LogicalBorderSurface.hh" +#include "G4LogicalSkinSurface.hh" +#include "G4OpticalSurface.hh" +#include "G4SDManager.hh" +#include "RichTbSD.hh" +#include "RichTbHpd.hh" + +RichTbHpd::RichTbHpd() {; } +RichTbHpd::~RichTbHpd() { ; } + +RichTbHpd::RichTbHpd(RichTbMaterial* RMaterial, + G4VPhysicalVolume* MotherOfHpd, G4int ihpd, + G4int NumberofSectorsInHpd, + G4bool ConstructTrackingGeomSwitch){ + + HpdNumber=ihpd; + NumSectInHpd= NumberofSectorsInHpd; + ConstructTrackGeomSwitch=ConstructTrackingGeomSwitch; + + G4Tubs* HpdMaster= + new G4Tubs("HPDMaster",HpdMasterInnerRad, + HpdMasterRad,HpdMasterHalfZ, + HpdMasterStartPhi,HpdMasterEndPhi); + + //Overall rotations of the HPD + G4RotationMatrix HpdMasterRotationX,HpdMasterRotationY; + G4RotationMatrix HpdMasterRotationZ; + HpdMasterRotationZ.rotateZ(HpdMasterRotZ[ihpd]); + G4ThreeVector HpdMasterTrsl(HpdMasterPosX[ihpd],HpdMasterPosY[ihpd], + HpdMasterPosZ[ihpd]); + G4Transform3D HpdMasterTransform(HpdMasterRotationZ, + HpdMasterTrsl); + + //Now for the placements of the HpdMaster + + // use vacuum . the photoelectrons travel in vacuum. hence + // just for simplicity the the hpdmaster is set as vacuum. + G4LogicalVolume* HpdMasterLog= + new G4LogicalVolume(HpdMaster,RMaterial->getVacuum(), + "HpdMaster",0,0,0); + G4VPhysicalVolume* HpdMasterPhys= + new G4PVPlacement(HpdMasterTransform,"HpdMaster", + HpdMasterLog, MotherOfHpd ,false,HpdNumber); + + //Now create the Silicon Detector sectors inside the HPD. + + for (G4int isec=0; isecgetHpdTubeMaterial(), + "HpdEnvelopeTubeLC",0,0,0); + + G4UnionSolid* HpdEnvelopeTubeLCS = + new G4UnionSolid("HpdEnvelopeTubeLCS", HpdEnvelopeTubeLC, + HpdEnvelopeSmallTube, + HpdEnvelopeSmallTubeTransform); + + G4LogicalVolume* HpdEnvelopeTubeLCSLog= + new G4LogicalVolume(HpdEnvelopeTubeLCS,RMaterial->getHpdTubeMaterial(), + "HpdEnvelopeTubeLCS",0,0,0); + + G4UnionSolid* HpdEnvelopeTubeGrand = + new G4UnionSolid("HpdEnvelopeTubeGrand", HpdEnvelopeTubeLCS, + HpdEnvelopeEndCap,HpdEnvelopeEndCapTransform); + + + G4LogicalVolume* HpdEnvelopeTubeGrandLog= + new G4LogicalVolume(HpdEnvelopeTubeGrand,RMaterial->getHpdTubeMaterial(), + "HpdEnvelopeTubeGrand",0,0,0); + + // + // + G4LogicalVolume* HpdQuartzWindowLog= + new G4LogicalVolume( HpdQuartzWindowSphereseg, + RMaterial->getPadHpdQuartzWMaterial(), + "HpdQuartzWindow",0,0,0); + + G4LogicalVolume* HpdPhCathodeLog= + new G4LogicalVolume( HpdPhCathodeSphereseg, + RMaterial->getPadHpdPhCathodeMaterial(), + "HpdPhCathode",0,0,0); + // + // + G4VPhysicalVolume* HpdEnvelopeTubeGrandPhys= + new G4PVPlacement(HpdEnvelopeLargeTubeTransform, + "HpdEnvelopeTubeGrand", + HpdEnvelopeTubeGrandLog,HpdMasterPhys,false,HpdNumber); + + G4VPhysicalVolume* HpdQuartzWindowPhys= + new G4PVPlacement(HpdQuartzWTransform,"HpdQuartzWindow", + HpdQuartzWindowLog,HpdMasterPhys,false,HpdNumber); + + G4VPhysicalVolume* HpdPhCathodePhys= + new G4PVPlacement(HpdPhCathodeTransform,"HpdPhCathode", + HpdPhCathodeLog,HpdMasterPhys,false,HpdNumber); + + + G4LogicalBorderSurface* HpdQuartzWSurface = + new G4LogicalBorderSurface("HpdQuartzWSurface",HpdMasterPhys, + HpdQuartzWindowPhys, + RMaterial->getOpticalHpdTQuartzWSurface()); + + G4LogicalBorderSurface* HpdQPhCathodeSurface = + new G4LogicalBorderSurface("HpdQPhCathodeSurface",HpdQuartzWindowPhys, + HpdPhCathodePhys, + RMaterial->getOpticalHpdQuartzWPhCathodeSurface()); + + G4LogicalBorderSurface* HpdPhCathodeQSurface = + new G4LogicalBorderSurface("HpdQPhCathodeSurface", HpdPhCathodePhys, + HpdQuartzWindowPhys, + RMaterial->getOpticalHpdQuartzWPhCathodeSurface()); + + //change made on 26-9-01 SE to make photocathode transparent. + // G4LogicalSkinSurface* HpdPhCathodeSkinSurface = + // new G4LogicalSkinSurface("HpdPhCathodeSkinSurface", + // HpdPhCathodeLog, + // RMaterial->getOpticalPhCathodeSkinSurface()); + + G4LogicalBorderSurface* HpdPhCathodeMasterSurface = + new G4LogicalBorderSurface("HpdPhCathodeMasterSurface", + HpdPhCathodePhys,HpdMasterPhys, + RMaterial->getOpticalPhCathodeBorderSurface()); + + G4LogicalBorderSurface* HpdMasterPhCathodeSurface = + new G4LogicalBorderSurface("HpdMasterPhCathodeSurface", + HpdMasterPhys,HpdPhCathodePhys, + RMaterial->getOpticalPhCathodeBorderSurface()); + + G4LogicalBorderSurface* HpdEnvelopeSurface = + new G4LogicalBorderSurface("HpdEnvelopeSurface",HpdMasterPhys, + HpdEnvelopeTubeGrandPhys, + RMaterial->getOpticalHpdMetalSurface()); + RichTbHpdEnvelopeTubeGrandLVol=HpdEnvelopeTubeGrandLog; + RichTbHpdEnvelopeTubeGrandPVol=HpdEnvelopeTubeGrandPhys; + RichTbHpdQuartzWLVol=HpdQuartzWindowLog; + RichTbHpdQuartzWPVol=HpdQuartzWindowPhys; + RichTbPhCathodeLVol=HpdPhCathodeLog; + RichTbPhCathodePVol=HpdPhCathodePhys; + + } + RichTbHpdLVol=HpdMasterLog; + RichTbHpdPVol=HpdMasterPhys; + + +} + + + + + + + diff --git a/examples/advanced/Rich/src/RichTbIOData.cc b/examples/advanced/Rich/src/RichTbIOData.cc new file mode 100644 index 0000000000..fa3281a2fa --- /dev/null +++ b/examples/advanced/Rich/src/RichTbIOData.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbIOData.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbIOData.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" +#include "G4ThreeVector.hh" +#include "RichTbHit.hh" +#include + +RichTbIOData::RichTbIOData(RichTbRunConfig* RConfig ) + :OutputDataFS((RConfig -> getOutputFileName()).c_str()) +{ + + aOutFileString=RConfig -> getOutputFileName(); + + +} +RichTbIOData::~RichTbIOData() { } + +void RichTbIOData::WriteOutEventHeaderData( const G4Event* evt ) { } + +void RichTbIOData::WriteOutHitData( const G4Event* evt ) { + + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + G4String colNam; + G4int RichTbCID = SDman->GetCollectionID(colNam="RichTbHitsCollection"); + if(RichTbCID<0) return; + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + RichTbHitsCollection* RHC = NULL; + if(HCE) + { + RHC = (RichTbHitsCollection*)(HCE->GetHC(RichTbCID)); + } + if(RHC) + { + G4int n_hit = RHC->entries(); + G4cout << " " << n_hit << "Hits being written out "< GetCurHpdNum(); + G4int aHitSectNum = aHit -> GetCurSectNum(); + G4int aHitPixelNum = aHit -> GetCurPixNum(); + G4ThreeVector aHitPosPC = aHit -> GetPosPC(); + + OutputDataFS<<" "<< aHitHpdNum<<" "<< aHitSectNum + <<" "< +#include +#include "globals.hh" +#include "RichTbMaterial.hh" +#include "G4Isotope.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4UnitsTable.hh" + +#include "G4OpticalSurface.hh" +#include "G4LogicalBorderSurface.hh" +#include "G4LogicalSkinSurface.hh" +#include "G4OpBoundaryProcess.hh" +#include "RichTbMaterialParameters.hh" +#include "RichTbGeometryParameters.hh" +#include "G4MaterialPropertyVector.hh" + + +RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig): + RichTbAerogelMaterial(vector (MaxNumberOfAerogelTypes)), + RichTbFilterMaterial(vector(MaxNumberOfFilterTypes)){ + + rConfig=RConfig; + + G4double a,z,density; //a=mass of a mole; + // z=mean number of protons; + G4String name,symbol; + G4int isz,isn; //isz= number of protons in an isotope; + //isn= number of nucleons in an isotope; + + + G4int numel,natoms; //numel=Number of elements constituting a material. + G4double abundance,fractionmass; + G4double temperature, pressure; + G4State kStateGas; + G4double FactorOne=1.0; + G4UnitDefinition::BuildUnitsTable(); + + //PhotonEnergy + + G4double PhotonEnergyStep=(PhotonMaxEnergy-PhotonMinEnergy)/ + NumPhotWaveLengthBins; + G4double* PhotonMomentum=new G4double[NumPhotWaveLengthBins]; + for (G4int ibin=0; ibinAddElement(elN, fractionmass=0.7); + Air->AddElement(elO, fractionmass=0.3); + + G4double* AirAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* AirRindex=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + AirAbsorpLength,NumPhotWaveLengthBins); + + Air->SetMaterialPropertiesTable(AirMPT); + RichTbAmbientAir = Air; + + + density = 1.205e-03*g/cm3; + pressure=1.*atmosphere; + temperature=293.*kelvin; + G4Material* TAir = new G4Material(name="TAir ", density, numel=2, + kStateGas,temperature,pressure); + TAir->AddElement(elN, fractionmass=0.7); + TAir->AddElement(elO, fractionmass=0.3); + + G4double* TAirAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* TAirRindex=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + TAirAbsorpLength,NumPhotWaveLengthBins); + + TAirMPT->AddProperty("RINDEX", PhotonMomentum, + AirRindex,NumPhotWaveLengthBins); + + TAir->SetMaterialPropertiesTable(TAirMPT); + RichTbTubeAir = TAir; + + //Nitrogen gas. + + density = 0.8073e-03*g/cm3; + pressure = RConfig -> getPressureN2(); + temperature = RConfig ->getTemperatureN2(); + + G4Material* NitrogenGas = new G4Material(name="NitrogenGas ", + density, numel=1, + kStateGas,temperature,pressure); + NitrogenGas->AddElement(elN, natoms=2); + + G4double* NitrogenGasAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* NitrogenGasRindex=new G4double[NumPhotWaveLengthBins]; + G4double* NitrogenGasPhotW=new G4double[NumPhotWaveLengthBins]; + + + vectorN2RefInd= InitN2RefIndex(pressure,temperature); + vectorN2RefPhotW=InitN2RefPhotW(); + + for (ibin=0; ibinAddProperty("ABSLENGTH",NitrogenGasPhotW, + NitrogenGasAbsorpLength,NumPhotWaveLengthBins); + + NitrogenGasMPT->AddProperty("RINDEX", NitrogenGasPhotW, + NitrogenGasRindex,NumPhotWaveLengthBins); + + NitrogenGas->SetMaterialPropertiesTable(NitrogenGasMPT); + RichTbNitrogenGas = NitrogenGas; + +//Water + density=1.000*g/cm3; + G4Material* H2O = new G4Material(name="Water",density,numel=2); + H2O->AddElement(elH,natoms=2); + H2O->AddElement(elO,natoms=1); + + G4double* H2OAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* H2ORindex=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + H2OAbsorpLength,NumPhotWaveLengthBins); + + H2OMPT->AddProperty("RINDEX", PhotonMomentum, + H2ORindex,NumPhotWaveLengthBins); + + H2O->SetMaterialPropertiesTable(H2OMPT); + + + RichTbH2O=H2O; +//Sio2 +//There is a quartz for the mirror and + //another quartz which is used in aerogel and + // yet another quartz used for the quartz window. + //Mirrorquartz + + density=2.200*g/cm3; + G4Material* SiO2MirrorQuartz = new G4Material(name="MirrorQuartz", + density,numel=2); + SiO2MirrorQuartz->AddElement(elSi,natoms=1); + SiO2MirrorQuartz->AddElement(elO,natoms=2); + + G4double* MirrorQuartzRindex=new G4double[NumPhotWaveLengthBins]; + G4double* MirrorQuartzAbsorpLength=new G4double[NumPhotWaveLengthBins]; + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + MirrorQuartzAbsorpLength,NumPhotWaveLengthBins); + + + SiO2MirrorQuartz->SetMaterialPropertiesTable(MirrorQuartzMPT); + RichTbMirrorQuartz=SiO2MirrorQuartz; + + density=2.200*g/cm3; + G4Material* SiO2AerogelQuartz = new G4Material(name="AerogelQuartz", + density,numel=2); + SiO2AerogelQuartz->AddElement(elSi,natoms=1); + SiO2AerogelQuartz->AddElement(elO,natoms=2); + + // QuartzWindow Quartz + density=2.200*g/cm3; + G4Material* WindowQuartz = new G4Material(name="WindowQuartz", + density,numel=2); + WindowQuartz->AddElement(elSi,natoms=1); + WindowQuartz->AddElement(elO,natoms=2); + G4double* WindowQuartzRindex=new G4double[NumPhotWaveLengthBins]; + G4double* WindowQuartzAbsorpLength=new G4double[NumPhotWaveLengthBins]; + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + WindowQuartzAbsorpLength,NumPhotWaveLengthBins); + + WindowQuartzMPT->AddProperty("RINDEX", PhotonMomentum, + WindowQuartzRindex,NumPhotWaveLengthBins); + WindowQuartz->SetMaterialPropertiesTable(WindowQuartzMPT); + + RichTbQuartzWindowMaterial=WindowQuartz; + //for now this is kept to be same as the hpdquartz window. + density=2.200*g/cm3; + G4Material* HpdWindowQuartz = new G4Material(name="HpdWindowQuartz", + density,numel=2); + HpdWindowQuartz->AddElement(elSi,natoms=1); + HpdWindowQuartz->AddElement(elO,natoms=2); + G4double* HpdWindowQuartzRindex=new G4double[NumPhotWaveLengthBins]; + G4double* HpdWindowQuartzAbsorpLength=new G4double[NumPhotWaveLengthBins]; + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + HpdWindowQuartzAbsorpLength,NumPhotWaveLengthBins); + + HpdWindowQuartzMPT->AddProperty("RINDEX", PhotonMomentum, + HpdWindowQuartzRindex,NumPhotWaveLengthBins); + HpdWindowQuartz->SetMaterialPropertiesTable(HpdWindowQuartzMPT); + + HpdQuartzWindowMaterial=HpdWindowQuartz; + + // Borosilcate window of the Pad Hpd + // for now kept same as the other Hpd. + density=2.200*g/cm3; + G4Material* PadHpdWindowQuartz = new G4Material(name="PadHpdWindowQuartz", + density,numel=2); + PadHpdWindowQuartz->AddElement(elSi,natoms=1); + PadHpdWindowQuartz->AddElement(elO,natoms=2); + G4double* PadHpdWindowQuartzRindex=new G4double[NumPhotWaveLengthBins]; + G4double* PadHpdWindowQuartzAbsorpLength=new G4double[NumPhotWaveLengthBins]; + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + PadHpdWindowQuartzAbsorpLength,NumPhotWaveLengthBins); + + PadHpdWindowQuartzMPT->AddProperty("RINDEX", PhotonMomentum, + PadHpdWindowQuartzRindex,NumPhotWaveLengthBins); + PadHpdWindowQuartz->SetMaterialPropertiesTable(PadHpdWindowQuartzMPT); + + PadHpdQuartzWindowMaterial=PadHpdWindowQuartz; + // + // + + G4int filterNumberThisRun=RConfig->GetFilterTNumber(); + // now for the filter material glass d263 + density=2.200*g/cm3; + G4Material* GlassD263 = new G4Material(name= FilterTypeString[0], + density,numel=2); + GlassD263->AddElement(elSi,natoms=1); + GlassD263->AddElement(elO,natoms=2); + + if(filterNumberThisRun >= 0 ) { + + //in the following the +2 is to match the materialproperty bins + // for the various materials, to avoid the tons of printout from G4. + // Please see the explanation below for getting the abosorption + // length of aerogel. The same comments apply here as well. + // Essentially the measured transmission input here is a combination of + // the bulk absorption and the fresnel surface loss. One needs to + // decouple them. Here a partial attempt is made to avoid + // modifying the G4OpBoundary process. SE. 15-11-2002. + G4double* GlassD263Rindex=new G4double[NumPhotBinGlassD263Trans+2]; + G4double* GlassD263AbsorpLength=new G4double[NumPhotBinGlassD263Trans+2]; + G4double* GlassD263MomValue = new G4double[NumPhotBinGlassD263Trans+2]; + G4double* currBulkTransFilter = new G4double[NumPhotBinGlassD263Trans+2]; + FilterTrData* CurFil = RConfig->GetFilterTrData(); + vectorGlassD263TransWL = CurFil-> GetTransWL(); + vectorGlassD263Transmis = CurFil->GetTransTotValue(); + G4double FilterHalfZ= CurFil->GetCurFilterThickness(); + + for (ibin=0; ibin 0 && ibin < NumPhotBinGlassD263Trans+1 ){ + //now using the formula trans=exp(-thickness/absorplength). + G4int ibina=ibin-1; + + if(GlassD263TransWL[ibina] > 0.0 ) { + GlassD263MomValue[ibin]= PhotMomWaveConv*eV/GlassD263TransWL[ibina]; + } + if(GlassD263Transmis[ibina] >0.0 ) { + G4double currentfilterRefIndex= GlassD263Rindex[ibin]; + G4double currentAdjacentMediumRefIndex=NitrogenNominalRefIndex; + // the following needs to be improved in the future + // to have a binary search and + // interpolation between the adjacent + // array elements etc. SE 15-11-2002. + for(G4int ibinr=0; ibinr= N2RefPhotW[ibinr] && currMomA <= N2RefPhotW[ibinr+1]){ + currentAdjacentMediumRefIndex=N2RefInd[ibinr]; + } + + } + + if( GlassD263Transmis[ibina] > 0.01 ) { + currBulkTransFilter[ibin]= + GetCurrentBulkTrans(GlassD263Rindex[ibin], + currentAdjacentMediumRefIndex, + GlassD263Transmis[ibina]); + } else { + currBulkTransFilter[ibin]=GlassD263Transmis[ibina]; + + } + if(currBulkTransFilter[ibin] > 0.0 && + currBulkTransFilter[ibin] < 0.9995 ) { + GlassD263AbsorpLength[ibin]= + -(2.0*FilterHalfZ)/(log(currBulkTransFilter[ibin])); + }else if (currBulkTransFilter[ibin]== 0.0 ) { + GlassD263AbsorpLength[ibin]=FilterHalfZ/1.0E32; + }else { + GlassD263AbsorpLength[ibin]=DBL_MAX; + } + }else { + + GlassD263AbsorpLength[ibin]=FilterHalfZ/1.0E32; + } + } + + } + GlassD263MomValue[0]=PhotonMaxEnergy; + GlassD263AbsorpLength[0]=GlassD263AbsorpLength[1]; + currBulkTransFilter[0]=currBulkTransFilter[1]; + + G4int mbin=NumPhotBinGlassD263Trans+1; + GlassD263MomValue[mbin]=PhotonMinEnergy; + GlassD263AbsorpLength[mbin]=GlassD263AbsorpLength[mbin-1]; + currBulkTransFilter[mbin]=currBulkTransFilter[mbin-1]; + + G4MaterialPropertiesTable* GlassD263MPT = + new G4MaterialPropertiesTable(); + + GlassD263MPT->AddProperty("ABSLENGTH",GlassD263MomValue, + GlassD263AbsorpLength,NumPhotBinGlassD263Trans+2); + + GlassD263MPT->AddProperty("RINDEX",GlassD263MomValue, + GlassD263Rindex,NumPhotBinGlassD263Trans+2); + + GlassD263->SetMaterialPropertiesTable(GlassD263MPT); + } + + GlassD263FilterMaterial=GlassD263; + RichTbFilterMaterial[0]=GlassD263; + //for the G4Example only 1 filter type is used. + G4cout << " Now Define Aerogel .." <AddMaterial(SiO2AerogelQuartz, fractionmass=97.0*perCent); + AerogTypeA->AddMaterial(H2O, fractionmass=3.0*perCent); + + + G4double* AerogTypeARindex=new G4double[NumPhotWaveLengthBins]; + G4double* AerogTypeAAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* AerogTypeARScatLength = new G4double[NumPhotWaveLengthBins]; + G4double* currentAgelTrans = new G4double[NumPhotWaveLengthBins]; + + vectorAerogelTypeASLength = GetAerogelRScatLength(AerogelTypeA); + G4int AerogNumber=0; + G4double AerogelLength=GetCurAerogelLength(AerogNumber); + G4double MaxTotTransmission=AerogelTypeATotTrans; + // Unfortunately the transmission measurement values only give the + // total transmission which includes the loss within aerogel + // and the Fresnel loss at the surface. In order to + // partially decouple this, the approximate loss at the + // the surface is calculated using the ref index of the + // aerogel and its surroundings. Then this is added to the + // measured transmission to get the transmission in the bulk of + // aerogel. This is then converted to an absorption length. + // In a more accurate implementation the loss at the surface + // should be calculated using a more precise formula. It is + // difficult since we do not know the direction of the photons + // at this point. + // One possibility is to modify the G4opBoundaryProcess + // for this, since we do know the direction of the photons by then. + // This is not done for this G4example, but only in the LHCb implementation. + // SE 15-11-2002. + // The aerogel is inside a volume made of Nitrogen + + for (ibin=0; ibin 0.0 && currentAgelTrans[ibin] < 0.9995) { + AerogTypeAAbsorpLength[ibin]= + -(AerogelLength)/(log( currentAgelTrans[ibin])); + }else if (currentAgelTrans[ibin] == 0.0) { + + AerogTypeAAbsorpLength[ibin]=AerogelLength/1.0E32; + }else { + + AerogTypeAAbsorpLength[ibin]=DBL_MAX; + } + + } + + G4MaterialPropertiesTable* AerogTypeAMPT = + new G4MaterialPropertiesTable(); + + AerogTypeAMPT->AddProperty("ABSLENGTH",PhotonMomentum, + AerogTypeAAbsorpLength,NumPhotWaveLengthBins); + + + AerogTypeAMPT->AddProperty("RAYLEIGH",PhotonMomentum, + AerogTypeARScatLength,NumPhotWaveLengthBins); + + AerogTypeAMPT->AddProperty("RINDEX", PhotonMomentum, + AerogTypeARindex,NumPhotWaveLengthBins); + + AerogTypeA->SetMaterialPropertiesTable(AerogTypeAMPT); + + + RichTbAerogelTypeA = AerogTypeA; + RichTbAerogelMaterial[0] = AerogTypeA; + // In the G4example the same type is repeated 5 times. + // in the LHCb implementation 5 types of aerogel materials used. + //Now for Aerogel TypeB + + RichTbAerogelTypeB = AerogTypeA; + RichTbAerogelMaterial[1] = AerogTypeA; + + //Now for aerogel TypeC + + RichTbAerogelTypeC = AerogTypeA; + RichTbAerogelMaterial[2] = AerogTypeA; + + //Now for aerogel TypeD + + RichTbAerogelTypeD = AerogTypeA; + RichTbAerogelMaterial[3] = AerogTypeA; + + //Now for aerogel Type E + + + RichTbAerogelTypeE = AerogTypeA; + RichTbAerogelMaterial[4] = AerogTypeA; + + + + //Bialkali Photocathode + + //the following numbers on the property of the BiAlkali Photocathode + // may not be accurate. + //Some number is is jut put in for initial program test purposes. + density=0.100*g/cm3; + G4Material* BiAlkaliPhCathode = new G4Material(name="BiAlkaliPhCathode", + density, numel=3); + BiAlkaliPhCathode->AddElement(elNa, fractionmass=37.5*perCent); + BiAlkaliPhCathode->AddElement(elK, fractionmass=37.5*perCent); + BiAlkaliPhCathode->AddElement(elSb, fractionmass=25.0*perCent); + + //for now properties for the ph cathode material. + + G4double* BiAlkaliPhCathodeRindex=new G4double[NumPhotWaveLengthBins]; + G4double* BiAlkaliPhCathodeAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double CathLen=PhotoCathodeThickness; + G4double CathTrans=PhCathodeNominalTransmission; + G4double CathAbsorpLen; + if(CathTrans > 0.0 && CathTrans < 0.9995 ) { + CathAbsorpLen = -(CathLen)/(log(CathTrans)); + }else if (CathTrans > 0.0) { + CathAbsorpLen = CathLen/1.0E32; + }else { + CathAbsorpLen = DBL_MAX; + } + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + BiAlkaliPhCathodeAbsorpLength,NumPhotWaveLengthBins); + + BiAlkaliPhCathodeMPT->AddProperty("RINDEX", PhotonMomentum, + BiAlkaliPhCathodeRindex,NumPhotWaveLengthBins); + BiAlkaliPhCathode->SetMaterialPropertiesTable(BiAlkaliPhCathodeMPT); + PadHpdPhCathodeMaterial=BiAlkaliPhCathode; + +//CF4 +//no data available at room temp and pressure; + density=0.003884*g/cm3; + temperature=273.*kelvin; + pressure=1.0*atmosphere; + a=88.01*g/mole; + + G4Material* CF4 =new G4Material(name="CF4",density,numel=2, + kStateGas,temperature,pressure); + CF4->AddElement(elC,natoms=1); + CF4->AddElement(elF,natoms=4); + // Sellmeir coef to be added. + RichTbCF4=CF4; + + G4cout << "\nNowDefineVacuum ..\n" <AddElement(elH,natoms=1); + + G4double* VacAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* VacRindex=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + VacAbsorpLength,NumPhotWaveLengthBins); + VacMPT->AddProperty("RINDEX", PhotonMomentum, + VacRindex,NumPhotWaveLengthBins); + vacuum->SetMaterialPropertiesTable(VacMPT); + + RichTbVacuum=vacuum; + +//beamgas +// + density=1.e-5*g/cm3; + pressure=2.e-2*bar; + temperature=STP_Temperature; + G4Material* beamgas = new G4Material(name="Beamgas",density,numel=1, + kStateGas,temperature,pressure); + beamgas->AddMaterial(Air,fractionmass=1.); // beware that air is at 20 deg; + +// +//Aluminium + density=2.7*g/cm3; + G4Material* Aluminium =new G4Material(name="Aluminium",density,numel=1); + Aluminium->AddElement(elAL,natoms=1); + + G4double* AluminiumAbsorpLength=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + AluminiumAbsorpLength,NumPhotWaveLengthBins); + + Aluminium->SetMaterialPropertiesTable(AluminiumMPT); + RichTbAluminium=Aluminium; +//PlasticAg , this is used as a wrap of aerogel and as upstream holder + // for aerogel frame. For now use same properties as that of Aluminium. + // this is just an opaque material. + + density=2.7*g/cm3; + G4Material* PlasticAg =new G4Material(name="PlasticAg",density,numel=1); + PlasticAg->AddElement(elAL,natoms=1); + + G4double* PlasticAgAbsorpLength=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + PlasticAgAbsorpLength,NumPhotWaveLengthBins); + + PlasticAg->SetMaterialPropertiesTable(PlasticAgMPT); + RichTbPlasticAg=PlasticAg; +// Kovar + density=2.7*g/cm3; + G4Material* Kovar =new G4Material(name="Kovar",density,numel=1); + Kovar->AddElement(elAL,natoms=1); + + G4double* KovarAbsorpLength=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + KovarAbsorpLength,NumPhotWaveLengthBins); + + Kovar->SetMaterialPropertiesTable(KovarMPT); + HpdTubeMaterial=Kovar; + +// Silicon + + density=2.33*g/cm3; + G4Material* Silicon =new G4Material(name="Silicon",density,numel=1); + Silicon->AddElement(elSi,natoms=1); + + G4double* SiliconAbsorpLength=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + SiliconAbsorpLength,NumPhotWaveLengthBins); + + Silicon->SetMaterialPropertiesTable(SiliconMPT); + HpdSiDetMaterial=Silicon; + +// Silicon coating made of Si02. + + density=2.33*g/cm3; + G4Material* SiliconCoating =new G4Material(name="SilCoat",density,numel=2); + SiliconCoating->AddElement(elSi,natoms=1); + SiliconCoating->AddElement(elO,natoms=2); + + G4double* SiliconCoatingAbsorpLength=new G4double[NumPhotWaveLengthBins]; + G4double* SiliconCoatingRindex=new G4double[NumPhotWaveLengthBins]; + + for (ibin=0; ibinAddProperty("ABSLENGTH",PhotonMomentum, + SiliconCoatingAbsorpLength,NumPhotWaveLengthBins); + + SiliconCoating->SetMaterialPropertiesTable(SiliconCoatingMPT); + HpdSiCoatingMaterial=SiliconCoating; + + // + // Now for the material properties of Surfaces + // + // + // + //Front (reflecting surface of RichTb Mirror) + + // First define wavelength in nm. + //For now assume that all segments have the same reflectivity. + // Hence the reflectivity is defined outside the loop of the + // the number of segments. + //Only the front surface is created. + // The abosorption length is set to a small value just to + // avoid photons exiting from the back of the mirror. + // the efficiency is for the absorption process. + + + G4double* PhotonMomentumRefl + =new G4double[NumPhotonRichMirrorReflWaveLengthBins]; + G4double* PhotWaveRefl = + new G4double[NumPhotonRichMirrorReflWaveLengthBins]; + G4double* PhotReflEff =new G4double[NumPhotonRichMirrorReflWaveLengthBins]; + G4double* MirrorQuRefIndex + =new G4double[NumPhotonRichMirrorReflWaveLengthBins]; + + for (ibin=0; ibinSetType(dielectric_metal); + OpRichTbMirrorSurface->SetFinish(polished); + OpRichTbMirrorSurface->SetModel(glisur); + G4MaterialPropertiesTable* OpRichTbMirrorSurfaceMPT = + new G4MaterialPropertiesTable(); + + OpRichTbMirrorSurfaceMPT->AddProperty("REFLECTIVITY", + PhotonMomentumRefl, + PhotWaveRefl, + NumPhotonRichMirrorReflWaveLengthBins); + OpRichTbMirrorSurfaceMPT->AddProperty("EFFICIENCY", + PhotonMomentumRefl, + PhotReflEff, + NumPhotonRichMirrorReflWaveLengthBins); + OpRichTbMirrorSurfaceMPT->AddProperty("RINDEX", + PhotonMomentumRefl, + MirrorQuRefIndex, + NumPhotonRichMirrorReflWaveLengthBins); + + OpRichTbMirrorSurface->SetMaterialPropertiesTable(OpRichTbMirrorSurfaceMPT); + RichTbOpticalMirrorSurface=OpRichTbMirrorSurface; + + + // OpRichTbMirrorSurface->DumpInfo(); + + // Now for the Surface of the Vessel Enclosure. + + + G4OpticalSurface * OpRichTbEnclosureSurface = + new G4OpticalSurface("RichTbEnclosureSurface"); + OpRichTbEnclosureSurface->SetType(dielectric_metal); + OpRichTbEnclosureSurface->SetFinish(polished); + OpRichTbEnclosureSurface->SetModel(glisur); + + G4double NumPhotonRichEnclosureSurfaceWaveLengthBins=10; + G4double RichTbEnclosureSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double RichTbEnclosureSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + G4double RichEnclosureSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + + G4MaterialPropertiesTable* OpRichTbEnclosureSurfaceMPT = + new G4MaterialPropertiesTable(); + + OpRichTbEnclosureSurfaceMPT->AddProperty("REFLECTIVITY", + RichEnclosureSurfacePhotMom, + RichTbEnclosureSurfaceReflectivity, + NumPhotonRichEnclosureSurfaceWaveLengthBins); + OpRichTbEnclosureSurfaceMPT->AddProperty("EFFICIENCY", + RichEnclosureSurfacePhotMom, + RichTbEnclosureSurfaceEfficiency, + NumPhotonRichEnclosureSurfaceWaveLengthBins); + + OpRichTbEnclosureSurface-> + SetMaterialPropertiesTable(OpRichTbEnclosureSurfaceMPT); + + RichTbOpticalEnclosureSurface=OpRichTbEnclosureSurface; + + //Now for the surface between the TAir and Quartz Window of the HPD + + G4OpticalSurface * OpHpdQuartzWTSurface = + new G4OpticalSurface("HpdQuartzWTSurface"); + OpHpdQuartzWTSurface->SetType(dielectric_dielectric); + OpHpdQuartzWTSurface->SetFinish(polished); + OpHpdQuartzWTSurface->SetModel(glisur); + //OpHpdQuartzWTSurface->SetModel(unified); + + G4double NumPhotonHpdQuartzWTSurfaceWaveLengthBins=10; + G4double HpdQuartzWTSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double HpdQuartzWTSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double HpdQuartzWTSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + + G4MaterialPropertiesTable* OpHpdQuartzWTSurfaceMPT = + new G4MaterialPropertiesTable(); + + + OpHpdQuartzWTSurfaceMPT->AddProperty("REFLECTIVITY", + HpdQuartzWTSurfacePhotMom, + HpdQuartzWTSurfaceReflectivity, + NumPhotonHpdQuartzWTSurfaceWaveLengthBins); + OpHpdQuartzWTSurfaceMPT->AddProperty("EFFICIENCY", + HpdQuartzWTSurfacePhotMom, + HpdQuartzWTSurfaceEfficiency, + NumPhotonHpdQuartzWTSurfaceWaveLengthBins); + + OpHpdQuartzWTSurface-> + SetMaterialPropertiesTable(OpHpdQuartzWTSurfaceMPT); + + HpdTQuartzWSurface=OpHpdQuartzWTSurface; + + + + //Now for the surface between the Quartz Window and Ph cathode of the HPD + + G4OpticalSurface * OpHpdQuartzWPSurface = + new G4OpticalSurface("HpdQuartzWPSurface"); + OpHpdQuartzWPSurface->SetType(dielectric_dielectric); + OpHpdQuartzWPSurface->SetFinish(polished); + OpHpdQuartzWPSurface->SetModel(glisur); + + G4double NumPhotonHpdQuartzWPSurfaceWaveLengthBins=10; + G4double HpdQuartzWPSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + + G4double HpdQuartzWPSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double HpdQuartzWPSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + + G4MaterialPropertiesTable* OpHpdQuartzWPSurfaceMPT = + new G4MaterialPropertiesTable(); + + + OpHpdQuartzWPSurfaceMPT->AddProperty("REFLECTIVITY", + HpdQuartzWPSurfacePhotMom, + HpdQuartzWPSurfaceReflectivity, + NumPhotonHpdQuartzWPSurfaceWaveLengthBins); + OpHpdQuartzWPSurfaceMPT->AddProperty("EFFICIENCY", + HpdQuartzWPSurfacePhotMom, + HpdQuartzWPSurfaceEfficiency, + NumPhotonHpdQuartzWPSurfaceWaveLengthBins); + + OpHpdQuartzWPSurface-> + SetMaterialPropertiesTable(OpHpdQuartzWPSurfaceMPT); + + HpdQuartzWPhCathodeSurface=OpHpdQuartzWPSurface; + + + + //Now for the skin surface of the PhCathode so that photons do + // not come out of the Photocathode. + // Changed to dielectric-dielectric so that photons DO come out + // of the photocathode. SE 26-9-01. + + G4OpticalSurface * OpPhCathodeSurface = + new G4OpticalSurface("PhCathodeSurface"); + + OpPhCathodeSurface->SetType(dielectric_dielectric); + OpPhCathodeSurface->SetFinish(polished); + OpPhCathodeSurface->SetModel(glisur); + + + G4double NumPhotonPhCathodeSurfaceWaveLengthBins=10; + G4double PhCathodeSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + + G4double PhCathodeSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double PhCathodeSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + + G4MaterialPropertiesTable* OpPhCathodeSurfaceMPT = + new G4MaterialPropertiesTable(); + + + OpPhCathodeSurfaceMPT->AddProperty("REFLECTIVITY", + PhCathodeSurfacePhotMom, + PhCathodeSurfaceReflectivity, + NumPhotonPhCathodeSurfaceWaveLengthBins); + OpPhCathodeSurfaceMPT->AddProperty("EFFICIENCY", + PhCathodeSurfacePhotMom, + PhCathodeSurfaceEfficiency, + NumPhotonPhCathodeSurfaceWaveLengthBins); + + OpPhCathodeSurface-> + SetMaterialPropertiesTable(OpPhCathodeSurfaceMPT); + + PhCathodeSkinSurface=OpPhCathodeSurface; + PhCathodeBorderSurface=OpPhCathodeSurface; + + + + + //Now for the surface between Interior of HPD and Silicon Coating. + + G4OpticalSurface * OpHpdSiCoatSurface = + new G4OpticalSurface("HpdSiCoatSurface"); + OpHpdSiCoatSurface->SetType(dielectric_metal); + OpHpdSiCoatSurface->SetFinish(polished); + OpHpdSiCoatSurface->SetModel(glisur); + + + G4double NumPhotonHpdSiCoatSurfaceWaveLengthBins=10; + + G4double HpdSiCoatSurfaceReflectivity[]= + {0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9}; + + G4double HpdSiCoatSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double HpdSiCoatSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + G4double HpdSiCoatSurfaceRefInd[]= + {1.4,1.4,1.4,1.4,1.4,1.4,1.4,1.4,1.4,1.4}; + + + G4MaterialPropertiesTable* OpHpdSiCoatSurfaceMPT = + new G4MaterialPropertiesTable(); + + + OpHpdSiCoatSurfaceMPT->AddProperty("REFLECTIVITY", + HpdSiCoatSurfacePhotMom, + HpdSiCoatSurfaceReflectivity, + NumPhotonHpdSiCoatSurfaceWaveLengthBins); + OpHpdSiCoatSurfaceMPT->AddProperty("EFFICIENCY", + HpdSiCoatSurfacePhotMom, + HpdSiCoatSurfaceEfficiency, + NumPhotonHpdSiCoatSurfaceWaveLengthBins); + OpHpdSiCoatSurfaceMPT->AddProperty("RINDEX", + HpdSiCoatSurfacePhotMom, + HpdSiCoatSurfaceRefInd, + NumPhotonHpdSiCoatSurfaceWaveLengthBins); + + OpHpdSiCoatSurface-> + SetMaterialPropertiesTable(OpHpdSiCoatSurfaceMPT); + + HpdSiCoatSurface=OpHpdSiCoatSurface; + + + + // Now for the Surface of the MetalTube of HPD. + + + G4OpticalSurface * OpRichTbHpdMetalSurface = + new G4OpticalSurface("RichTbHpdMetalSurface"); + OpRichTbHpdMetalSurface->SetType(dielectric_metal); + OpRichTbHpdMetalSurface->SetFinish(polished); + OpRichTbHpdMetalSurface->SetModel(glisur); + + G4double NumPhotonHpdMetalSurfaceWaveLengthBins=10; + G4double RichHpdMetalSurfaceReflectivity[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + + G4double RichHpdMetalSurfaceEfficiency[]= + {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + G4double RichHpdMetalSurfacePhotMom[]= + {1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV, + 9.0*eV,10.0*eV}; + + G4MaterialPropertiesTable* OpRichTbHpdMetalSurfaceMPT = + new G4MaterialPropertiesTable(); + + OpRichTbHpdMetalSurfaceMPT->AddProperty("REFLECTIVITY", + RichHpdMetalSurfacePhotMom, + RichHpdMetalSurfaceReflectivity, + NumPhotonHpdMetalSurfaceWaveLengthBins); + OpRichTbHpdMetalSurfaceMPT->AddProperty("EFFICIENCY", + RichHpdMetalSurfacePhotMom, + RichHpdMetalSurfaceEfficiency, + NumPhotonHpdMetalSurfaceWaveLengthBins); + + OpRichTbHpdMetalSurface-> + SetMaterialPropertiesTable(OpRichTbHpdMetalSurfaceMPT); + + RichTbOpticalHpdMetalSurface=OpRichTbHpdMetalSurface; + + + //Now for the surface of the Filter + + G4OpticalSurface * OpRichTbFilterSurface = + new G4OpticalSurface("RichTbFilterSurface"); + OpRichTbFilterSurface->SetType(dielectric_dielectric); + OpRichTbFilterSurface->SetFinish(polished); + OpRichTbFilterSurface->SetModel(glisur); + + + + if(filterNumberThisRun >= 0 ) { + + G4int FilterNumbins=NumPhotonRichTbFilterSurfaceWaveLengthBins; + + + G4double* FilterReflectivity = new G4double(FilterNumbins); + G4double* FilterEff =new G4double(FilterNumbins); + G4double* FilterPhotMom =new G4double(FilterNumbins); + + + for(G4int ibinf =0 ; ibinf < FilterNumbins; ibinf++ ){ + FilterReflectivity[ibinf]= RichTbFilterSurfaceReflectivity[ibinf]; + FilterEff[ibinf]= RichTbFilterSurfaceEfficiency[ibinf]; + FilterPhotMom[ibinf]= RichTbFilterSurfacePhotMom[ibinf]; + + G4MaterialPropertiesTable* OpRichTbFilterSurfaceMPT = + new G4MaterialPropertiesTable(); + + } + RichTbOpticalFilterSurface=OpRichTbFilterSurface; + + } + + delete [] PhotonMomentum; + delete [] AirAbsorpLength; + delete [] AirRindex; + delete [] MirrorQuartzRindex; + delete [] MirrorQuartzAbsorpLength; + delete [] WindowQuartzRindex; + delete [] WindowQuartzAbsorpLength; + delete [] AluminiumAbsorpLength; + delete [] KovarAbsorpLength; + delete [] PhotonMomentumRefl; + + +} +G4double RichTbMaterial::ConvertAgelRIndex(G4double phmom, G4int AgelTnum ) { + AerogelRefData* AgData= rConfig -> GetAerogelRefdata(); + //Now to convert and interpolate to get the same binning + // as the other property vectors. + G4double Refind; + G4int Numphbin=AgData-> GetNumberOfRefIndBins(); + G4double phm1,phm2; + if(phmom < AgData->GetAerogelRefphotE(0) ){ + Refind=AgData->GetCurAerogelRefIndValue(0,AgelTnum ); } + if(phmom >= AgData->GetAerogelRefphotE(Numphbin-1 ) ) { + Refind=AgData->GetCurAerogelRefIndValue(Numphbin-1,AgelTnum ); } + + for( G4int iba=0; ibaGetAerogelRefphotE(iba); + phm2=AgData->GetAerogelRefphotE(iba+1); + + if(phmom >= phm1 && phmom < phm2 ) { + + G4double ref1=AgData->GetCurAerogelRefIndValue(iba,AgelTnum ); + G4double ref2=AgData->GetCurAerogelRefIndValue(iba+1,AgelTnum ); + + G4double grad = (ref2-ref1)/(phm2-phm1); + G4double aint = ref1- grad*phm1; + Refind = grad*phmom + aint ; + break; + } + } + + return Refind; +} +RichTbMaterial::RichTbMaterial() { ; } +RichTbMaterial::~RichTbMaterial(){ ; } + + + diff --git a/examples/advanced/Rich/src/RichTbMaterialParameters.cc b/examples/advanced/Rich/src/RichTbMaterialParameters.cc new file mode 100644 index 0000000000..af532644cb --- /dev/null +++ b/examples/advanced/Rich/src/RichTbMaterialParameters.cc @@ -0,0 +1,234 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbMaterialParameters.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include +#include "globals.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbMaterialParameters.hh" +#include "FilterTrData.hh" +#include "AerogelTypeSpec.hh" + +#include "RichTbAnalysisManager.hh" + + +void InitializeRichTbMaterial(){ + +} + +vector InitializePhotonMomentumVector() { + + G4double PhotonEnergyStep=(PhotonMaxEnergy-PhotonMinEnergy)/ + NumPhotWaveLengthBins; + vectorPhotMomVect(NumPhotWaveLengthBins); + for (G4int ibin=0; ibin InitN2RefIndex(G4double pressure, G4double temperature){ + + vector PmV=InitN2RefPhotW(); + vector RefN2(NumPhotWaveLengthBins); + G4double GasRhoN2Cur=GasRhoN2atSTP*(GasTemperature_STP/temperature)* + (pressure/ GasPressure_STP); + G4double epho,pfe,cpfe; + for(G4int ibinwn =0; ibinwn InitN2RefPhotW() { + return InitializePhotonMomentumVector() ; +} +vector InitAgelPhotW() { + return InitializePhotonMomentumVector() ; +} +vector InitializeHpdQE(G4int ihpdqe) { + // Initialize the HPD QE + G4int iqb; + if(ihpdqe >= NumHpdTot ) { + G4cout<<"Wrong HPD Number for QE " <qeCurPerCent(NumQEbins); + if(ihpdqe == 0 ){ + for(iqb=0; iqb InitializeHpdWaveL(G4int ihpdqe) { + G4int iqb; + if(ihpdqe >= NumHpdTot ) { + G4cout<<"Wrong HPD Number for QE wavelength " <HpdQEW(NumQEbins); + for (iqb=0; iqb GetCurAerogelType(AerogelNum); + + + + G4double Aparam, Cparam; + if(CurAerogelType == AerogelTypeA ) { + Aparam = AerogelTypeATotTrans; + Cparam = AerogelTypeAClarity*cm/(micrometer*micrometer*micrometer*micrometer); + } + + + + for(G4int Iabin=0; Iabin<100; Iabin ++ ) { + + G4double waLInmu = waL/1000.0; + G4double Aetr = Aparam* exp(-Cparam * thickness / pow(waLInmu,4) ); + + waL += stepsize; + } + + + + + + + G4int ihpdqa; + ihpdqa=0; + vectorWaveL1 = InitializeHpdWaveL(ihpdqa); + vectorQEff1 = InitializeHpdQE(ihpdqa); + + + +} + + +vector getDeadPixelList(G4int ihpdNum, G4int isectNum){ + vectorDeadPixelList; + G4int isc,ipsc; + + + if(DeadPixelList.size() > MaxNumDeadPixelPerHpdSect ){ + G4cout<<" Too Many dead Pixels in Hpd "<GetAerogelRScatLength(AerogelType CurrentAerogelType) { + + vectorAgelRayleighScatLength(NumPhotWaveLengthBins); + vectorAgelPhotW = InitAgelPhotW(); + G4double aClarity; + if(CurrentAerogelType == AerogelTypeA ) { + aClarity=AerogelTypeAClarity/(micrometer*micrometer*micrometer*micrometer); + + }else if (CurrentAerogelType == AerogelTypeB ) { + aClarity=AerogelTypeBClarity/(micrometer*micrometer*micrometer*micrometer); + }else if (CurrentAerogelType == AerogelTypeC ) { + aClarity=AerogelTypeCClarity/(micrometer*micrometer*micrometer*micrometer); + + + }else if (CurrentAerogelType == AerogelTypeD ) { + aClarity=AerogelTypeDClarity/(micrometer*micrometer*micrometer*micrometer); + + }else if (CurrentAerogelType == AerogelTypeE ) { + aClarity=AerogelTypeEClarity/(micrometer*micrometer*micrometer*micrometer); + + }else {G4cout<<"Unknown Aerogel Type for Rayleigh Scat Length "<= 1.0) ATrans=1.0; + return ATrans; +} + + + + + diff --git a/examples/advanced/Rich/src/RichTbPhotoDetector.cc b/examples/advanced/Rich/src/RichTbPhotoDetector.cc new file mode 100644 index 0000000000..1a461a5dd9 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbPhotoDetector.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPhotoDetector.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include +#include "globals.hh" +#include "RichTbPhotoDetector.hh" +#include "G4VPhysicalVolume.hh" +#include "RichTbGeometryParameters.hh" + + +#include "RichTbSiDet.hh" +#include "RichTbSiPixel.hh" +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" + +RichTbPhotoDetector::RichTbPhotoDetector() {;} +RichTbPhotoDetector::RichTbPhotoDetector(RichTbMaterial* RMaterial, + RichTbComponent* RTbComponent, RichTbRunConfig* rConfig, + G4bool ConstructTrackingSwitch){ + + ConstructTrackingGeometrySwitch=ConstructTrackingSwitch; + + G4VPhysicalVolume* EnclosurePhys= + RTbComponent-> getEnclosurePhysicalVolume(); + //Now for the Individual HPDS + + NumOfHpds=NumberOfHpds; + //Normally all hpds have the same number of Si sectors. + G4int NumSect= NumberOfSiDetSectors; + // Loop through the HPDs + for(G4int ihpd=0; ihpd + +#include "globals.hh" +#include "RichTbPhysicsList.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ParticleTable.hh" +#include "G4VUserPhysicsList.hh" +#include "G4ParticleTable.hh" +#include "G4UserPhysicsListMessenger.hh" +#include "G4UImanager.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" + +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4UnitsTable.hh" + + +RichTbPhysicsList::RichTbPhysicsList(RichTbRunConfig* RConfig) + : G4VUserPhysicsList() { + + G4cout<<" Now define the physics List"<GetIterator(); + +} +RichTbPhysicsList::RichTbPhysicsList() :G4VUserPhysicsList(){ + // pointer to the particle table + theParticleTable = G4ParticleTable::GetParticleTable(); + theParticleIterator = theParticleTable->GetIterator(); + + +} + +RichTbPhysicsList::~RichTbPhysicsList() {} + +void RichTbPhysicsList::ConstructParticle() +{ + // In this method, static member functions should be called + // for all particles which you want to use. + // This ensures that objects of these particle types will be + // created in the program. + + ConstructBosons(); + ConstructLeptons(); + ConstructMesons(); + ConstructBaryons(); + +} + +void RichTbPhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); + + // optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); +} + +void RichTbPhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +void RichTbPhysicsList::ConstructMesons() +{ + // mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); +} + +void RichTbPhysicsList::ConstructBaryons() +{ +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + +void RichTbPhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructGeneral(); + ConstructEM(); + ConstructOp(); +} + +#include "G4Decay.hh" + +void RichTbPhysicsList::ConstructGeneral() +{ + G4Decay* theDecayProcess = new G4Decay(); + theParticleIterator->reset(); + + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (theDecayProcess->IsApplicable(*particle)) { + pmanager->AddDiscreteProcess(theDecayProcess); + } + } +} + +#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 "HpdSiEnergyLoss.hh" +void RichTbPhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + G4cout<<" Now creating EM processes"<value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + HpdSiEnergyLoss* HpdSiEnergyLossProcess = + + new HpdSiEnergyLoss("Silicon","HpdSiEnergyLoss"); + pmanager->AddProcess( HpdSiEnergyLossProcess ,-1,2,2); + + + 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); + } + } + } +} + +#include "G4Cerenkov.hh" +#include "G4OpAbsorption.hh" +#include "G4OpRayleigh.hh" +#include "G4OpBoundaryProcess.hh" +#include "PadHpdPhotoElectricEffect.hh" +#include "RichTbMaterialParameters.hh" + +void RichTbPhysicsList::ConstructOp() +{ + G4cout<<"Now creating Optical processes"<SetVerboseLevel(0); + theAbsorptionProcess->SetVerboseLevel(0); + theRayleighScatteringProcess->SetVerboseLevel(0); + theBoundaryProcess->SetVerboseLevel(0); + + G4int MaxNumPhotons = 300; + + theCerenkovProcess->SetTrackSecondariesFirst(true); + theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumPhotons); + + G4OpticalSurfaceModel themodel = unified; + theBoundaryProcess->SetModel(themodel); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + if (theCerenkovProcess->IsApplicable(*particle)) { + pmanager->AddContinuousProcess(theCerenkovProcess); + } + if (particleName == "opticalphoton") { + G4cout << " AddDiscreteProcess to OpticalPhoton " << G4endl; + pmanager->AddDiscreteProcess(theAbsorptionProcess); + pmanager->AddDiscreteProcess(theRayleighScatteringProcess); + pmanager->AddDiscreteProcess(theBoundaryProcess); + pmanager->AddDiscreteProcess(theHpdPhotoElectricProcess); + } + } +} + +void RichTbPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "RichTbPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + SetCutsWithDefault(); +} + + + + + + diff --git a/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc b/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..4c62b6a8f6 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc @@ -0,0 +1,156 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbAnalysisManager.cc for Rich of LHCb +// History: +// Created: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "G4Timer.hh" + +#include "RichTbPrimaryGeneratorAction.hh" + +#include "RichTbDetectorConstruction.hh" +#include "RichTbPrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + G4String RichTbPrimaryGeneratorAction::thePrimaryParticleName="proton" ; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RichTbPrimaryGeneratorAction::RichTbPrimaryGeneratorAction( + RichTbDetectorConstruction* RichTbDC) +:RichTbDetector(RichTbDC),rndmFlag("off"),xvertex(0.),yvertex(0.),zvertex(0.), + vertexdefined(false) +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + //create a messenger for this class + gunMessenger = new RichTbPrimaryGeneratorMessenger(this); + + // default particle kinematic + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + G4ParticleDefinition* particle + = particleTable->FindParticle(particleName="proton"); + particleGun->SetParticleDefinition(particle); + + thePrimaryParticleName = particle->GetParticleName() ; + + particleGun->SetParticleMomentumDirection(G4ThreeVector(0.1,0.2,1.)); + particleGun->SetParticleEnergy(100.*GeV); + + + particleGun->SetParticlePosition(G4ThreeVector(xvertex,yvertex,zvertex)); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RichTbPrimaryGeneratorAction::~RichTbPrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RichTbPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + // + thePrimaryParticleName = particleGun->GetParticleDefinition()-> + GetParticleName() ; + G4double x0,y0,z0 ; + + G4double x1,y1,z1 ; + + if(vertexdefined) + { + + x1 = 0. ; + y1 = 0. ; + z1 = 1. ; + + x0 = xvertex ; + y0 = yvertex ; + z0 = zvertex ; + } + else + { + + x1 = 0. ; + y1 = 0. ; + z1 = 1. ; + + x0 = 0. ; + y0 = 0. ; + z0 = 0. ; // -0.5*(RichTbDetector->GetWorldSizeZ()) ; + } + G4double r0,phi0 ; + + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + + particleGun->GeneratePrimaryVertex(anEvent); +} + +/////////////////////////////////////////////////////////////////////// +// +// + +G4String RichTbPrimaryGeneratorAction::GetPrimaryName() +{ + return thePrimaryParticleName ; +} + +void RichTbPrimaryGeneratorAction::Setxvertex(G4double x) +{ + vertexdefined = true ; + xvertex = x ; + G4cout << " X coordinate of the primary vertex = " << xvertex/mm << + " mm." << G4endl; +} + +void RichTbPrimaryGeneratorAction::Setyvertex(G4double y) +{ + vertexdefined = true ; + yvertex = y ; + G4cout << " Y coordinate of the primary vertex = " << yvertex/mm << + " mm." << G4endl; +} +void RichTbPrimaryGeneratorAction::Setzvertex(G4double z) +{ + vertexdefined = true ; + zvertex = z ; + G4cout << " Z coordinate of the primary vertex = " << zvertex/mm << + " mm." << G4endl; +} diff --git a/examples/advanced/Rich/src/RichTbPrimaryGeneratorMessenger.cc b/examples/advanced/Rich/src/RichTbPrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..e2281bc11b --- /dev/null +++ b/examples/advanced/Rich/src/RichTbPrimaryGeneratorMessenger.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbPrimaryGeneratorMessenger.cc for Rich of LHCb +// History: +// Created: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbPrimaryGeneratorMessenger.hh" + +#include "RichTbPrimaryGeneratorAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RichTbPrimaryGeneratorMessenger::RichTbPrimaryGeneratorMessenger(RichTbPrimaryGeneratorAction* RichTbGun) +:RichTbAction(RichTbGun) +{ + RndmCmd = new G4UIcmdWithAString("/gun/random",this); + RndmCmd->SetGuidance("Shoot randomly the incident particle."); + RndmCmd->SetGuidance(" Choice : on, off(default)"); + RndmCmd->SetParameterName("choice",true); + RndmCmd->SetDefaultValue("off"); + RndmCmd->SetCandidates("on off"); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); + setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); + setxvertexCmd->SetParameterName("xv",true); + setxvertexCmd->SetDefaultValue(0.0*mm) ; + + setyvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/yvertex",this); + setyvertexCmd->SetGuidance(" Set y coord. of the primary vertex."); + setyvertexCmd->SetParameterName("yv",true); + setyvertexCmd->SetDefaultValue(0.0*mm) ; + + setzvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/zvertex",this); + setzvertexCmd->SetGuidance(" Set z coord. of the primary vertex."); + setzvertexCmd->SetParameterName("zv",true); + setzvertexCmd->SetDefaultValue(0.0*mm) ; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +RichTbPrimaryGeneratorMessenger::~RichTbPrimaryGeneratorMessenger() +{ + delete RndmCmd; + delete setxvertexCmd; + delete setyvertexCmd; + delete setzvertexCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RichTbPrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command == RndmCmd ) + { RichTbAction->SetRndmFlag(newValue);} + if( command == setxvertexCmd) + { RichTbAction->Setxvertex(setxvertexCmd->GetNewDoubleValue(newValue));} + if( command == setyvertexCmd) + { RichTbAction->Setyvertex(setyvertexCmd->GetNewDoubleValue(newValue));} + if( command == setzvertexCmd) + { RichTbAction->Setzvertex(setzvertexCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/advanced/Rich/src/RichTbROGeometry.cc b/examples/advanced/Rich/src/RichTbROGeometry.cc new file mode 100644 index 0000000000..eaa6189e85 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbROGeometry.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbROGeometry.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbROGeometry.hh" + +RichTbROGeometry::RichTbROGeometry(RichTbMaterial* RMaterial, + RichTbRunConfig* RConfig) + : G4VReadOutGeometry() { + rMaterial=RMaterial; + ROTbConfig=RConfig; + +} + + +RichTbROGeometry::RichTbROGeometry(G4String aString, + RichTbMaterial* RMaterial, + RichTbRunConfig* RConfig) + : G4VReadOutGeometry(aString ) { + + rMaterial=RMaterial; + ROTbConfig=RConfig; + + +} + +RichTbROGeometry::~RichTbROGeometry() { } + +G4VPhysicalVolume* RichTbROGeometry::Build() { + + //Construct the ReadoutGeometry. + ROTbHall =new RichTbHall(rMaterial); + ROTbComponent = new RichTbComponent(rMaterial,ROTbHall,ROTbConfig,false); + ROPhotDet= new RichTbPhotoDetector(rMaterial,ROTbComponent,ROTbConfig,false); + + return ROTbHall->getRichTbHallPhysicalVolume(); + +} diff --git a/examples/advanced/Rich/src/RichTbRunAction.cc b/examples/advanced/Rich/src/RichTbRunAction.cc new file mode 100644 index 0000000000..0e80943143 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbRunAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbRunAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "G4Timer.hh" + +#include "RichTbRunAction.hh" + +#include "G4ios.hh" +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "RichTbAnalysisManager.hh" + +#include "RichTbRunConfig.hh" + +RichTbRunAction::RichTbRunAction(){ + + timer = new G4Timer; + +} + +RichTbRunAction::~RichTbRunAction() +{ + delete timer; +} + +void RichTbRunAction::BeginOfRunAction(const G4Run* aRun) +{ + + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + if(G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } + + + timer->Start(); + + +#ifdef G4ANALYSIS_USE + + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + + analysis->book(); + +#endif + +} + +void RichTbRunAction::EndOfRunAction(const G4Run* aRun) +{ +#ifdef G4ANALYSIS_USE + + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); +#endif + + + timer->Stop(); + G4cout << "number of event = " << aRun->GetNumberOfEvent() + << " " << *timer << G4endl; + +#ifdef G4ANALYSIS_USE + analysis->finish(); +#endif + +} + diff --git a/examples/advanced/Rich/src/RichTbRunConfig.cc b/examples/advanced/Rich/src/RichTbRunConfig.cc new file mode 100644 index 0000000000..99cfa9d36c --- /dev/null +++ b/examples/advanced/Rich/src/RichTbRunConfig.cc @@ -0,0 +1,246 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbRunConfig.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include +#include "RichTbRunConfig.hh" +#include "RichTbMaterialParameters.hh" +#include "globals.hh" +RichTbRunConfig::RichTbRunConfig() + :CurAerogelTNumber(vector(MaxNumberOfAerogelTiles)), + CurAerogelType(vector(MaxNumberOfAerogelTiles)){ + + const char* RunConfigFile = "RunConfig.dat" ; + G4cout<<" Run Configuration Input is from "<< RunConfigFile<>RichTbHall_visib; + finp>>RichTbEnclosure_visib; + finp>>RichTbRadFrame_visib; + finp>>RichTbRadUpW_visib; + finp>>RichTbRadDnW_visib; + finp>>RichTbAerogel_visib; + finp>>RichTbAerogelWrap_visib; + finp>>RichTbFilter_visib; + finp>>RichTbMirror_visib; + finp>>RichTbHpdMaster_visib; + finp>>RichTbHpdEnvelopeTube_visib; + finp>>RichTbHpdQuartzW_visib; + finp>>RichTbHpdPhCathode_visib; + finp>>RichTbHpdSiDet_visib; + finp>>RichTbHpdSectCoat_visib; + finp>>RichTbHpdSiPx_visib; + finp>>RichTbDrawTrajectory_visib; + finp>>RichTbParticleEnergy; + finp>>FilterTNumber; + finp>>WriteOutputFile; + finp>>OutputFileName; + finp>>OutputHistoDirName; + finp>>AerogelRefDataInputFileName; + finp>>FilterTransDataInputFileName; + } + CurrentPressureN2=rPressureN2*unitofPressureN2; + CurrentTemperatureN2=rTemperatureN2*unitofTemperatureN2; + MirrorAddTiltX = (rMirrorAddTiltXDeg*pi/180)*rad; + MirrorAddTiltY = (rMirrorAddTiltYDeg*pi/180)*rad; + G4cout<<"Current Run Configuration "<GetFilterTypeIndex(); + + G4cout<<"Filter Number = "<= 0 ) { + G4cout<<" Filter Type = "< 1 ) { + G4cout<<" RichTbRunConfig: For the G4Example " + <<" the number of aerogel tiles is limited to 1 " + <<" Hence setting the number of Tiles to 1 "<GetTrack(); + if(aTrack ->GetDefinition()->GetPDGCharge() == 0.0 ) return false; + G4double edep = aStep->GetTotalEnergyDeposit(); + + if(edep < 0.0001) return false; + G4StepPoint* PrePosition = aStep->GetPreStepPoint(); + + + G4int CurrentHpdNumber = PrePosition->GetPhysicalVolume() + -> GetMother() -> GetCopyNo(); + G4int CurrentSectorNumber= PrePosition->GetPhysicalVolume() + ->GetCopyNo(); + G4VPhysicalVolume* ROphysVol = ROhist -> GetVolume(); + G4int CurrentPixelNumber = ROphysVol->GetCopyNo(); + + G4ThreeVector HitAtPhotoCathode; + if(aTrack->GetCreatorProcess() -> GetProcessName() == "PadHpdPhot") { + HitAtPhotoCathode=aTrack->GetVertexPosition(); + } + + G4int CopyId= NumberOfSensitiveSectorsInHpd* + NumberOfSensitivePixelsInSector*CurrentHpdNumber+ + NumberOfSensitivePixelsInSector*CurrentSectorNumber+ + CurrentPixelNumber; + + + if( HpdSDID[CopyId ] == -1 ) { + RichTbHit* newHit = new RichTbHit(); + newHit->SetEdep( edep ); + newHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); + newHit->SetPosPC(HitAtPhotoCathode); + newHit->SetCurHpdNum ( CurrentHpdNumber ); + newHit->SetCurSectNum ( CurrentSectorNumber ); + newHit->SetCurPixNum ( CurrentPixelNumber ); + //For now the same SD detector cell is allowed to have + //multiple hits from the same event. This is ok for + // analogue readout for photoelectron counting. + //This is to be changed in the future. + G4int NumHits = RichTbHitCollection->insert( newHit ); + + HpdSDID[CopyId]= NumHits -1 ; + + } else { + // the current pixel is already hit in this event. + // here we can add extra energy (adc counts) to the + // existing hit. But this is not relevant to the + // current Tb analysis. + (*RichTbHitCollection)[HpdSDID[CopyId]]->AddEdep( edep ); + + G4cout << " Multiple hits in Hpd sector pixel " << CurrentHpdNumber + <<" "<< CurrentSectorNumber<<" "<< CurrentPixelNumber<< G4endl; + } + + return true; +} + +void RichTbSD::EndOfEvent(G4HCofThisEvent*HCE){ + if( HCID < 0 ){ + HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } + HCE->AddHitsCollection( HCID, RichTbHitCollection ); + +} + +void RichTbSD::clear(){} + +void RichTbSD::DrawAll(){ } + +void RichTbSD::PrintAll(){ } + + + + diff --git a/examples/advanced/Rich/src/RichTbSiDet.cc b/examples/advanced/Rich/src/RichTbSiDet.cc new file mode 100644 index 0000000000..20ebfc3a2a --- /dev/null +++ b/examples/advanced/Rich/src/RichTbSiDet.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSiDet.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include +#include "globals.hh" +#include "G4Box.hh" +#include "G4Trd.hh" +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UnionSolid.hh" +#include "RichTbSiDet.hh" +#include "G4SDManager.hh" +#include "RichTbSD.hh" +#include "G4LogicalBorderSurface.hh" + +RichTbSiDet::RichTbSiDet() {;} +RichTbSiDet::~RichTbSiDet() {;} +RichTbSiDet::RichTbSiDet(RichTbMaterial* RMaterial, + G4VPhysicalVolume* MotherOfSiDet, + G4bool ConstructTrackingGeomSwitch, + G4int IHpdNum, G4int SectNum){ + // + // + ConstructTrackGeomSwitch=ConstructTrackingGeomSwitch; + IHpdNumber=IHpdNum; + CurSiSectNum=SectNum; + //This is done for each sector. + + G4double SiSectRotZ; + G4double SiSectPosX,SiSectPosY; + G4double SiSectCoatingRotZ; + G4double SiSectCoatingPosX,SiSectCoatingPosY; + G4int isec=SectNum; + G4Trd* HpdSiSect= + new G4Trd("HpdSiSect",SiSectTrapHalfX1, SiSectTrapHalfX2, + SiSectTrapHalfY1,SiSectTrapHalfY2,SiSectTrapHalfZ); + + G4RotationMatrix SiSectRotationX,SiSectRotationZ; + + SiSectRotationX.rotateX(SiSectRotX); + SiSectRotZ = SiSectAngStart-isec*SiSectAngSize; + SiSectRotationZ.rotateZ(SiSectRotZ); + SiSectPosX=SiSectTrapHalfZ*cos(SiSectRotZ-pi/2.0); + // + if(isec < NumberOfSiDetSectors/2 ) { + SiSectPosY=SiSectTrapHalfZ*sin(SiSectRotZ-pi/2.0)-SiSectHalfMoonGap/2.0; + }else{ + SiSectPosY=SiSectTrapHalfZ*sin(SiSectRotZ-pi/2.0)+SiSectHalfMoonGap/2.0; + } + + G4ThreeVector SiSectTrapPos(SiSectPosX,SiSectPosY,SiSectPosZ); + + G4Transform3D SiSectTransform(SiSectRotationZ*SiSectRotationX, + SiSectTrapPos); + + + G4LogicalVolume* HpdSiSectLog = + new G4LogicalVolume(HpdSiSect,RMaterial->getHpdSiDetMaterial(), + "HpdSiSect",0,0,0); + + G4VPhysicalVolume* HpdSiSectPhys= + new G4PVPlacement(SiSectTransform,"HpdSiSect", + HpdSiSectLog,MotherOfSiDet,false,SectNum); + + + if(ConstructTrackingGeomSwitch) { + + + G4Trd* HpdSectCoat= + new G4Trd("HpdSectCoat",SiSectCoatingTrapHalfX1, + SiSectCoatingTrapHalfX2, + SiSectCoatingTrapHalfY1,SiSectCoatingTrapHalfY2, + SiSectCoatingTrapHalfZ); + + + G4RotationMatrix SiSectCoatingRotationX,SiSectCoatingRotationZ; + SiSectCoatingRotationX.rotateX(SiSectCoatingRotX); + SiSectCoatingRotZ = SiSectRotZ; + SiSectCoatingRotationZ.rotateZ(SiSectCoatingRotZ); + SiSectCoatingPosX= SiSectPosX; + SiSectCoatingPosY=SiSectPosY; + G4ThreeVector SiSectCoatingTrapPos(SiSectCoatingPosX,SiSectCoatingPosY, + SiSectCoatingPosZ); + + G4Transform3D SiSectCoatingTransform(SiSectCoatingRotationZ*SiSectCoatingRotationX, SiSectCoatingTrapPos); + + + + G4LogicalVolume* HpdSectCoatLog = + new G4LogicalVolume(HpdSectCoat,RMaterial->getHpdSiCoatingMaterial(), + "HpdSectCoat",0,0,0); + + G4VPhysicalVolume* HpdSectCoatPhys= + new G4PVPlacement(SiSectCoatingTransform,"HpdSectCoat", + HpdSectCoatLog,MotherOfSiDet,false,SectNum); + + G4LogicalBorderSurface* HpdSectCoatSurface = + new G4LogicalBorderSurface("HpdSectCoatSurface",MotherOfSiDet , + HpdSectCoatPhys , + RMaterial-> getHpdSiCoatSurface()); + + RichTbHpdSectCoatLVol=HpdSectCoatLog; + RichTbHpdSectCoatPVol=HpdSectCoatPhys; + + + } + + + //Construct the Silicon Pixels + NumHpdSiPix=NumberOfPadHpdSiPixels; + if(!ConstructTrackingGeomSwitch) { + for (G4int ipix=0; ipix +#include "globals.hh" +#include "G4Box.hh" +#include "G4Trd.hh" +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4UnionSolid.hh" +#include "RichTbSiPixel.hh" +#include "G4SDManager.hh" +#include "RichTbSD.hh" +#include "RichTbRODummySD.hh" +#include "RichTbMaterialParameters.hh" +#include "G4IntersectionSolid.hh" +RichTbSiPixel::RichTbSiPixel() {;} +RichTbSiPixel::~RichTbSiPixel() {;} +RichTbSiPixel::RichTbSiPixel(RichTbMaterial* RMaterial, + G4VPhysicalVolume* MotherOfSiPixel, + G4int IHpdNum, G4int Isector ,G4int ipixel){ + + + // + // + ICurSectorNumber=Isector; + HpdSiPixelnum=ipixel; + ICurHpdNumber=IHpdNum; + + + G4Trd* HpdSiSectTrapInt= + new G4Trd("HpdSiSectTrapInt",SiSectTrapHalfX1, SiSectTrapHalfX2, + SiSectTrapHalfY1,SiSectTrapHalfY2,SiSectTrapHalfZ); + + G4Box* HpdSiPxBox; + if(ipixel == BigPixelNum ) { + HpdSiPxBox=new G4Box("HpdSiPxBigBox", + SiPixelHalfX,SiPixelHalfY,SiBigPixelHalfZ); + }else { + HpdSiPxBox=new G4Box("HpdSiPxBox",SiPixelHalfX,SiPixelHalfY,SiPixelHalfZ); + } + // + //For the rotation and translation of the Si Pixel. + G4RotationMatrix HpdSiPxRotation, HpdSiSectTrapIntRotation; + G4double RichTbHpdSiPxShiftY=HpdSiPixPosZ; + G4double RichTbHpdSiPxShiftX + =RichTbPadHpdSiPixPos(ipixel).getPadHpdSiPixPosX(); + G4double RichTbHpdSiPxShiftZ + =RichTbPadHpdSiPixPos(ipixel).getPadHpdSiPixPosY()-SiSectTrapHalfZ; + + G4ThreeVector HpdSiPxTrsl( RichTbHpdSiPxShiftX, + RichTbHpdSiPxShiftY, + RichTbHpdSiPxShiftZ); + + G4Transform3D HpdSiPxTransform(HpdSiPxRotation,HpdSiPxTrsl); + + G4ThreeVector HpdSiSectTrapIntTrsl(0.0*mm, 0.0*mm, 0.0*mm); + G4Transform3D HpdSiSectTrapIntTransform( HpdSiSectTrapIntRotation, + HpdSiSectTrapIntTrsl); + //Now for the placements + + G4LogicalVolume* HpdSiPxLog; + G4VPhysicalVolume* HpdSiPxPhys; + // The pixels at the pixel edge are intersected with the + // sector. The BigPixel is also at the edge. + + if(PixelAtSectEdge[ipixel]){ + G4IntersectionSolid* HpdSiPxTrapBox + = new G4IntersectionSolid("PixelSectTrapInt", HpdSiSectTrapInt, + HpdSiPxBox, HpdSiPxTransform); + + + HpdSiPxLog= + new G4LogicalVolume( HpdSiPxTrapBox,RMaterial->getHpdSiDetMaterial(), + "PixelSectTrapInt",0,0,0); + + HpdSiPxPhys= + new G4PVPlacement(HpdSiSectTrapIntTransform,"PixelSectTrapInt", + HpdSiPxLog,MotherOfSiPixel,false,ipixel); + + }else{ + + HpdSiPxLog= + new G4LogicalVolume( HpdSiPxBox,RMaterial->getHpdSiDetMaterial(), + "HpdSiPxBox",0,0,0); + + HpdSiPxPhys= + new G4PVPlacement(HpdSiPxTransform,"HpdSiPxBox", + HpdSiPxLog,MotherOfSiPixel,false,ipixel); + + } + //Now for the readout dummy sensitive detector + // This just flags the pixel as active. + //First Get the deadPixel List + G4bool thisPixelisAlive=true; + vectorDeadPxL = getDeadPixelList(IHpdNum,Isector); + for(G4int ideadP=0; ideadPSetSensitiveDetector(DummySensi); + } + RichTbHpdSiPixelLVol=HpdSiPxLog; + RichTbHpdSiPixelPVol=HpdSiPxPhys; + + +} + + + + + + diff --git a/examples/advanced/Rich/src/RichTbStackingAction.cc b/examples/advanced/Rich/src/RichTbStackingAction.cc new file mode 100644 index 0000000000..daac9327f2 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbStackingAction.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. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbStackingAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbStackingAction.hh" + +RichTbStackingAction::RichTbStackingAction() { ;} +RichTbStackingAction::~RichTbStackingAction() { ;} diff --git a/examples/advanced/Rich/src/RichTbSteppingAction.cc b/examples/advanced/Rich/src/RichTbSteppingAction.cc new file mode 100644 index 0000000000..754ea034d6 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbSteppingAction.cc @@ -0,0 +1,256 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbSteppingAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "globals.hh" +#include "RichTbSteppingAction.hh" +#include "G4SteppingManager.hh" +#include "RichTbAnalysisManager.hh" +#include "RichTbMaterial.hh" +#include "RichTbGeometryParameters.hh" +#include "RichTbMaterialParameters.hh" +#include "RichTbRunConfig.hh" +#include "RichTbPrimaryGeneratorAction.hh" +#include "G4ParticleDefinition.hh" +#include "G4DynamicParticle.hh" +#include "G4Material.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4Electron.hh" +#include "G4ThreeVector.hh" +#include "G4OpticalPhoton.hh" +#include "G4PionMinus.hh" + +#include "AIDA/AIDA.h" + + + +RichTbSteppingAction::RichTbSteppingAction(RichTbRunConfig* rConfig , RichTbPrimaryGeneratorAction* RPrimGenAction){ + + + richtbRunConfig= rConfig; + rPrimGenAction = RPrimGenAction; + + HpdPhElectronKE=rConfig->getHpdPhElectronEnergy(); + uParticleChange=new G4VParticleChange(); +} +RichTbSteppingAction::~RichTbSteppingAction() { ;} + +void RichTbSteppingAction::UserSteppingAction(const G4Step* aStep){ + + + + + RichTbGenericHisto(aStep); + +} +void RichTbSteppingAction:: RichTbDebugHisto(const G4Step* aStep){ + +} +void RichTbSteppingAction::RichTbGenericHisto(const G4Step* aStep) { + + + + + G4StepPoint* pPreStepPoint = aStep ->GetPreStepPoint(); + G4StepPoint* pPostStepPoint = aStep ->GetPostStepPoint(); + const G4ThreeVector prePos= pPreStepPoint->GetPosition(); + const G4ThreeVector postPos= pPostStepPoint->GetPosition(); + //In the following 1000 mm is the Z coord of a point + // between the mirror and the dowstream end of the vessel. + if(prePos.z()<1000*mm && prePos.z() > 0.0*mm ){ + //check to see if we are at a boundary + + + + if (pPostStepPoint->GetStepStatus() == fGeomBoundary){ + + + + G4Track* aPhotTrack = aStep -> GetTrack(); + const G4DynamicParticle* aParticle = aPhotTrack->GetDynamicParticle(); + const G4double PhotonEnergy = + aParticle->GetKineticEnergy(); + + + + + G4String VolNameD="Agel"; + G4String VolNameE="VesselEnclosure"; + G4String VolNameF="MirrorSphe"; + G4String VolNameG="RadFrame"; + G4String VolNameH="FilterBox"; + G4String VolNameQ="HpdQuartzWindow"; + G4String VolNameP="HpdMaster"; + + // + + if( aParticle->GetDefinition() == G4OpticalPhoton::OpticalPhoton()){ + + + + if( pPreStepPoint -> GetPhysicalVolume() && + pPostStepPoint -> GetPhysicalVolume() ) { + G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); + G4String tpostVol = pPostStepPoint -> GetPhysicalVolume()->GetName(); + + + + + + if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 1 || + richtbRunConfig-> GetRichTbParticleEnergyCode() == 2 ) { + + // Optical photons are generated as beam particle. + // count the photons entering the aerogel volume. + // this is essentially same as the photons generated. + if(( tpreVol == VolNameG || tpreVol == VolNameE ) && + tpostVol == VolNameD ) { + +#ifdef G4ANALISYS_USE + + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + analysis->bumpNumPhotonsBeforeAerogel(); +#endif + + + } + + + } + + + if(PhotonEnergy > 0.0 ) { + + const G4double PhotonWavelength = + PhotMomWaveConv*1.0*eV/ PhotonEnergy; + + // + G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); + G4String tpostVol = pPostStepPoint -> GetPhysicalVolume()->GetName(); + // First for the mirror volume + +#ifdef G4ANALYSIS_USE + + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + + + + if(tpreVol == VolNameE && tpostVol == VolNameF ) { + + analysis->getfhistoWBeforeMirror()->fill(PhotonWavelength); + + + + analysis->bumpNumPhotonsBeforeMirror(); + + + + } + + if(tpreVol == VolNameF && tpostVol == VolNameE ) { + + analysis->getfhistoWAfterMirror()->fill(PhotonWavelength); + analysis->bumpNumPhotonsAfterMirror(); + + + +#endif + } +// + + + //Now for the Aerogel Volume + if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 0 ) { + + if(( tpreVol == VolNameG || tpreVol == VolNameE ) && + tpostVol == VolNameD ) { + + if(prePos.z() < postPos.z() ) { + +#ifdef G4ANALYSIS_USE + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + analysis->bumpNumPhotonsBeforeAerogel(); + +#endif + } + } + + } + + if(tpreVol == VolNameD && + ( tpostVol == VolNameG || tpostVol == VolNameE ) ) { + + // G4double XatAgelExit=postPos.x(); + //G4double YatAgelExit=postPos.y(); + //G4double ZatAgelExit=postPos.z(); + const G4ThreeVector PhotCurMom = + aPhotTrack->GetMomentumDirection(); + //G4double CurExitangle= acos(PhotCurMom.z()); + + // Plot the Angle of emission of the photon. + // When there is no Raylegh scattering this is the + // Cherenkov angle. For now we only consider the charged + // track to be of direction 001. Later this may be changed. + // So the angle considered is just the angle of the photon + // track. + +#ifdef G4ANALYSIS_USE + RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + + const G4ThreeVector PhotOrgUnitMom = + aPhotTrack->GetVertexMomentumDirection(); + G4double Ckv_angle= acos(PhotOrgUnitMom.z()); + + analysis->getfhistoCkvProdSmall()->fill(Ckv_angle); + + //Now for the photon emission point in aerogel + + const G4ThreeVector PhotEmisPt = aPhotTrack->GetVertexPosition(); + + analysis->getfhistoEmisZ()->fill( PhotEmisPt.z()); + +#endif + + } + + + } + + } + } + } + + } + +} + + + + + + diff --git a/examples/advanced/Rich/src/RichTbTrackingAction.cc b/examples/advanced/Rich/src/RichTbTrackingAction.cc new file mode 100644 index 0000000000..39402b13d2 --- /dev/null +++ b/examples/advanced/Rich/src/RichTbTrackingAction.cc @@ -0,0 +1,31 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbTrackingAction.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#include "RichTbTrackingAction.hh" +RichTbTrackingAction::RichTbTrackingAction() { ;} +RichTbTrackingAction::~RichTbTrackingAction() { ;} diff --git a/examples/advanced/Rich/src/RichTbVisManager.cc b/examples/advanced/Rich/src/RichTbVisManager.cc new file mode 100644 index 0000000000..a58b4ce56a --- /dev/null +++ b/examples/advanced/Rich/src/RichTbVisManager.cc @@ -0,0 +1,154 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Rich advanced example for Geant4 +// RichTbVisManager.cc for Rich of LHCb +// History: +// Created: Sajan Easo (Sajan.Easo@cern.ch) +// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) +///////////////////////////////////////////////////////////////////////////// +#ifdef G4VIS_USE + +#include "RichTbVisManager.hh" + +// Supported drivers... + +#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.... + +RichTbVisManager::RichTbVisManager () { ; } +RichTbVisManager::~RichTbVisManager () {;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RichTbVisManager::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/Tiara/GNUmakefile b/examples/advanced/Tiara/GNUmakefile new file mode 100644 index 0000000000..8e83a953a4 --- /dev/null +++ b/examples/advanced/Tiara/GNUmakefile @@ -0,0 +1,24 @@ +# $Id: GNUmakefile,v 1.2 2003/06/16 17:06:43 dressel Exp $ +# ------------------------------------------------------------------- +# GEANT4 tag $Name: geant4-05-02 $ +# -------------------------------------------------------------- + + + +TIARA_SRC_DIRS = tiaraPhysicsPackaging tiaraPhysicsLists tiara +TIARA_SRC_SWIG_DIRS = CLHEPWrapper G4KernelWrapper TiaraWrapper + +include $(G4INSTALL)/config/architecture.gmk + +.PHONY: Tiara tiaraClean swigClean + +Tiara: + @for dir in $(TIARA_SRC_DIRS); do ( cd source/$$dir && $(MAKE)); done;: + @for dir in $(TIARA_SRC_SWIG_DIRS); do ( cd source/$$dir && $(MAKE)); done;: + +tiaraClean: + @for dir in $(TIARA_SRC_DIRS); do ( cd source/$$dir && $(MAKE) tiaraClean); done;: + @for dir in $(TIARA_SRC_SWIG_DIRS); do ( cd source/$$dir && $(MAKE) tiaraClean); done;: + +swigClean: + @for dir in $(TIARA_SRC_SWIG_DIRS); do ( cd source/$$dir && $(MAKE) swigClean); done;: diff --git a/examples/advanced/Tiara/History b/examples/advanced/Tiara/History new file mode 100644 index 0000000000..2ba26041ed --- /dev/null +++ b/examples/advanced/Tiara/History @@ -0,0 +1,36 @@ +# $Id: History,v 1.8 2003/06/20 15:34:37 dressel Exp $ +# ------------------------------------------------------------------- +# GEANT4 tag $Name: geant4-05-02 $ +# ------------------------------------------------------------------- + + ========================================================= + 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 20th, 2003 M.Dressel - Tiara-V05-01-04 +- using CLHEP units replacing G4Dimensions.hh + +Jun 18th, 2003 M.Dressel - Tiara-V05-01-03 +- change environment configuration for swig + +Jun 17th, 2003 M.Dressel - Tiara-V05-01-02 +- changes for rh73 with gcc-2.95.2 and rh73 with gcc-3.2 + +June 16th, 2003 M.Dressel - Tiara-V05-01-01 +- building with gmake supported, cvs meta info added + + +June 12th, 2003 M.Dressel - Tiara-V05-01-00 +- Created + diff --git a/examples/advanced/Tiara/README b/examples/advanced/Tiara/README new file mode 100644 index 0000000000..c7ea19fe5c --- /dev/null +++ b/examples/advanced/Tiara/README @@ -0,0 +1,271 @@ +# $Id: README,v 1.11 2003/06/18 12:27:46 dressel Exp $ +# ------------------------------------------------------------------- +# GEANT4 tag $Name: geant4-05-02 $ +# ------------------------------------------------------------------- + +Simulation of the TIARA experiment using importance sampling +============================================================ + +This example is a simulation of the neutron shielding experiment TIARA +see http://idsun1.kek.jp/nakao/research/tiara/tiara.htm. +The example is meant to provide a realistic example for +applying geometrical importance sampling (geometrical splitting and +Russian roulette). +In the TIARA experiment neutrons of two different energy distributions +created by 43 MeV and 68 MeV protons bombarding a 7Li target are measured +behind several shields. The simulation starts from the neutron spectra. +In this example the interactions of the neutrons with the (concrete) +shields are simulated and energy dependent neutron fluxes are measured +behind the shields. Users may chose to run the simulation for different +shielding configuration with or without importance sampling. +The simulated neutron fluxes are compared to the published +experimental data. The efficiency of applying importance sampling +depends strongly on the shied thickness and importance configuration. +The efficiency of the simulations may be obtained as FOM values. + +See also "Geant4 User's Guide +For Application Developers", Chapter "Toolkit Fundamentals" +Section "Event Biasing Techniques" and references there. + + + +The example has been tested on CERN RH 7.3 with the +gcc-3.2 and gcc-2.95.2 compilers. + +Note for system testing without analysis: see points 1, 1.3 and 3.2. + + + + +1) Setting the environment +========================== + +You should have Geant4 compiled with: +"G4LIB_BUILD_SHARED" set to 1. +You need to set: +"NeutronHPCrossSections" (e.g. to ${G4INSTALL}/data/G4NDL3.7) + + +Three examples are given of how to set environment variables +in the three cases: + +1.1) Anaphe via AFS (most simple): +-------------------- + You have access to afs and you want to use Anaphe for the + analysis: + Set the following environment variables: + "G4ANALYSIS_USE" + + "ANAPHETOP" (e.g. /afs/cern.ch/sw/lhcxx) + "AIDA_DIR" (e.g. /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp) + "ANAPHE_SCRIPTS" (e.g. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.4/scripts) + + Finally source the script envCommon.csh + + +1.2) No afs but a local Anphe and AIDA installation: +---------------------------------------------------- + You don't use afs but you have a local installation of Anaphe and AIDA + (e.g. from http://anaphe.web.cern.ch/anaphe/. + Set the following environment variables: + "G4ANALYSIS_USE" + + "ANAPHETOP" (e.g. /Anaphe/release) + "AIDA_DIR" (e.g. /AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp) + "ANAPHE_SCRIPTS" (e.g. ${ANAPHETOP}/share/LHCXX/5.0.5/scripts) + + here is a place holder for your directory with the + respective installations of Anaphe and AIDA + + Finally source the script envCommon.csh + + +1.3) No afs and no Anaphe and no AIDA (e.g. for system testing): +---------------------------------------------------------------- + You don't want to use Anaphe and AIDA and you don't have no afs access. + Make sure "G4ANALYSIS_USE" is unset (e.g. unsetenv G4ANALYSIS_USE). + + Note: python must be built against a "libc". + You may do this by creating a shared library by a command + similar to this + "ld -shared -o libpython2.2.so --whole-archive libpython2.2.a /usr/lib/libc.so" + + Set the following environment variables: + "PYTHONVERSION" (2.2 or higher) + "PYTHON_BASE_DIR" (e.g. to /usr/) + + "SWIG_VERSION" (e.g. 1.3 or higher) + "SWIG_BASE_DIR" (e.g. /users/dressel/local) + + "CLHEP_BASE_DIR" (e.g. to /users/dressel/CLHEP) + + Finally source the script envCommon.csh + + +2) Building the example +======================= + +Geant4 has to be compiled using G4LIB_BUILD_SHARED 1 and the one of the +above environment settings have to be set. + +Type "gmake". + + +2.1) In more detail +------------------- + +Geant4 should be compiled into granular shared libraries. +Therefore before compiling Geant4 set "G4LIB_BUILD_SHARED" to "1". + +External packages used in this example are Anaphe, SWIG and Python. +The Anaphe package comes with SWIG and Python versions used to build +Anaphe itself. These SWIG and Python versions should also be used with +this example if Anaphe is used. + + +2.2) Cleaning up +---------------- +To remove the files created by swig ( *_wrap.cc, the corresponding +.py files) use "gmake swigClean. +To remove the directories of compiled code related to this example under +$G4WORKDIR/tmp/$G4SYSTEM/ use "gmake tiaraClean". + + +3) Running the example: +======================= + + +3.1) Using Anaphe +----------------- +Change to the sub directory "run" and execute "runSim.py". +"runSim.py" runs an example configuration which nay be +changed by the user. The results of the simulation are stored in +the directory "simData". +The script "runSim.py" periodically prints scoring information to the +screen. +It also prints out the relative path of a ".shelve" file. +This file can be used to access results of the simulation. + +In case the example was build using analysis +results may be viewed e.g. using lizard and scripts: +1) Start python2.2 or lizard +2) type: import dataAcess +3) type: p = dataAcess.ExpMcPlot (shelveFileName,detectorposition) + where "shelveFileName" is the name (enclosed in quotes) of the + shelve file created during the execution of anaSim.py. + The name is printed on the screen during execution of runSim.py. + "detectorposition" may be "00, "20" or "40" and stand for the + detectors 00, 20, 40 cm off beam axis respectively. +4) type: p.display () +5) type: import extractShelve +6) type: extractShelve.getFluxes (p.she) + p.she is the shelve object containing simulation results. + This prints the FOM values for the used detectors + for two energy regions below and in the peak region. + The FOM are should be compared to unbiased simulations. To run + an unbiased simulation set the importance values to one (see + runSim.py) + +Note: the output files written after every run are incremental! Meaning + the file with the highest run number contains the data from + all the runs! + +The modules (dataAcess, extractShelve) imported in the above steps are +placed in source/py_modules in files named after the module ending with +".py". + +Since the simulation time used by "runSim.py" is only 5 minutes the +calculated results have large errors. If you want to see a better result +do the following changes in "naSim.py". +Extend the total run time to e,g, 2 hours by setting: +"totalTime = 2 * myUtils.hour", +set the print out period to 30 minutes by setting: +"timeForOneRun = 30 * myUtils.min". + + + + +3.2) Not using Anaphe (mainly for system testing) +------------------------------------------------- +Change to the sub directory "run" and execute +runSimNoAnalysis.py. + + + + + +4) Content of the directory: +============================ + + +simCommon.csh - a script to setup environment variables + in case the above one of the above environment settings have been + done beforehand. + +GNUmakefile - for building the example + + +data / - directory containing experimental data + + expDataOrig - experimental data taken from + http://idsun1.kek.jp/nakao/research/tiara/tiara.htm + + expDataConverted - some of the experimental data and the source + spectra converted into Anaphes DataPointSet + and stored in Anaphes xml format + + +source / - directory containing the source code + + tiara - C++ source code + + tiaraPhysicsLists - C++ source code of physics lists + + tiaraPhysicsPackaging - C++ source cod with common + classes for the physics lists + + CLHEPWrapper - wrapper classes for usage in python + \include\CLHEP.i - specification file for swig + \src\CLHEP_wrap.cc - wrapper created with swig + + G4KernelWrapper - wrapper classes for usage in python + + TiaraWrapper - wrapper classes for usage in python + + py_modules - python modules for running and analysing + + swig.gmk - makefile rules for using swig + +run / - directory for running the example + runSim.py - executable example script + runSimNoAnalysis.py - executable script for running without + analysis + + + +5) Technicalities about this example +=================================== + + This example is composed out of a layer of classes written in C++ +(source/tiara/include, source/tiara/src), a layer of python +shadow classes created by swig (source/CLHEPWrapper, +source/G4KernelWrapper, source/TiaraWrapper) and layer of +python modules (source/py_modules). + The C++ layer under source/tiara provides lower level classes closely +related to the Geant4 kernel. + The shadow classes in the source/*Wrapper directories provide classes +that may be instantiated in a python script or session. This way the +lower level C++ code can be used directly for scripting in python. The +shadow classes are declared in the files with extensions ".i" in the +source/*Wrapper/include directories. Swig is used to create C++ code for +a library that can be loaded into python and python modules (files with +extensions .py in the source/*Wrapper directories). When the python +modules created by swig are imported into python (in a session or a +script) the corresponding C++ library is automatically loaded as well. + The python modules in source/py_modules provide classes and functions +that may be changed or customized more frequently than the C++ classes +in source/tiara. These classes complete the construction of geometries +take care of the procedure of setting up the simulation, the run sequence +and the analysis after the simulation has been ran. + The script runSim.py is an commented example of using the python modules +to run a simulation. diff --git a/examples/advanced/Tiara/data/expDataConverted/TiaraData2.xml b/examples/advanced/Tiara/data/expDataConverted/TiaraData2.xml new file mode 100644 index 0000000000000000000000000000000000000000..165ff905fd31e5b2163281acc9719191b4b72cf9 GIT binary patch literal 25476 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 literal 0 HcmV?d00001 diff --git a/examples/advanced/Tiara/data/expDataConverted/dpsSource.xml b/examples/advanced/Tiara/data/expDataConverted/dpsSource.xml new file mode 100644 index 0000000000000000000000000000000000000000..b2e4bb48ec1d9f612dd84bd2406fe0a68b30014f GIT binary patch literal 1000 zcmVnW8j`c^}5{ho)T3L)^9ZDv=%| z=`t(Z@@82z?Ig6(tdh?A7AB6GvX;KH)yCOa?$yr6@n}man`XHuY>{oKqlfTw9N$*$ zV#_EOkJ4>-^X}qTx!2*^{+7=hOsZd91GoQeqi3YUFO|=AC^wJm-BADZkpVsZg?Gum z{|l|0a{8&&Sz`8-{*C_uNtHi6Bts#FfaEA7Cm;m~IkXxA5xMyTME@OP3ksqk2ssi1 zK~hUWECeYyh{GVRs}X)48(wnr`E)Picgu{ zWl+U)Bf%8!xRGFrw%Pu^kcu7#1*kvKb%gQ+l zf+*f_yURj~msrhB7ovF0Exd&kFF6edK@_jq-GwMVQ>IIa>;MR&c*)MVEsQ8$Al-E7 z0T4{_y)^ZBh=UX_5N0F}QoQ8;j)EYHmx{c5o*cis9HjWP|M+zSAeiEN3;zP7`)3lK zL0@qo()_;H!81qcW90(GEIS`WaB?JU>AOyk$M9hJZypk(=uEmWy4O10fkBW1C|Rgh05u9djUZ=E;aU5IN`6 zVGaakHlq$i&WI6nAS_$AV~VGuFy=teBf%7(aU;PLpE02xb07r5gcZzzkXGDuVTz{$ zB<4U^u5>^h2+JrQbs#J=U6=!5IadgCAZ*{}7y`i*Zv-zL3lG-un#oo?c*;N>`FTk3 zQtflQ3p-^n+;m~53{+V0km3uKbX)j%+dPF7pDD+j{G^cL^ZxT>2n2hRfXanaQ1QKy z9DiPtqIJBcAfR)XQ4mD&xiZ|EAd1iXuUZY+U7+GK3WB{m)KmQNXIL5d?og3Y5bRvB WS2_R(WxE%EFMb2%qXA%TEC2wiX5bP4 literal 0 HcmV?d00001 diff --git a/examples/advanced/Tiara/data/expDataConverted/source.xml b/examples/advanced/Tiara/data/expDataConverted/source.xml new file mode 100644 index 0000000000000000000000000000000000000000..8b69afda1fc0c73e67d046b3cd04aea8eb8f2e29 GIT binary patch literal 1774936 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

k(X-p=n8O*Z2!--E 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νNSOCb%%ph+Ag@3Oz(m$IWrBX< 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

dS~{xlbF;WJ@nT0ZQ@lDUyYJBD+e-x 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