Geant4 Cross Reference |
>> 1 $Id: README 106393 2017-10-09 09:46:03Z gcosmo $ 1 --------------------------------------------- 2 ------------------------------------------------------------ 2 3 3 Example of the external decayer implementatio 4 Example of the external decayer implementation with PYTHIA6 4 --------------------------------------------- 5 ----------------------------------------------------------- 5 6 6 The complete PYTHIA6 documentation can be fou 7 The complete PYTHIA6 documentation can be found at: 7 http://home.thep.lu.se/~torbjorn/pythiaaux/re 8 http://home.thep.lu.se/~torbjorn/pythiaaux/recent.html 8 9 9 The PYTHIA6 external decayer was originally d 10 The PYTHIA6 external decayer was originally developed within 10 the AliRoot framework, by Andreas Morsch (CER 11 the AliRoot framework, by Andreas Morsch (CERN). 11 The dependence on the ALICE software was take 12 The dependence on the ALICE software was taken off 12 by Christian Holm Christensen, 13 by Christian Holm Christensen, 13 The dependence on the Root framework and the 14 The dependence on the Root framework and the integration in 14 the Geant4 framework was done by Ivana Hrivna 15 the Geant4 framework was done by Ivana Hrivnacova (IPN Orsay). 15 16 16 --------------------------------------------- 17 ------------------------------------------------------------ 17 18 18 The use of the external decayer is demonstrat 19 The use of the external decayer is demonstrated with using the 19 classes from common examples repository, see 20 classes from common examples repository, see below their complete list. 20 21 21 The G4Pythia6Decayer class provides the imple 22 The G4Pythia6Decayer class provides the implementation of the 22 G4VExternalDecayer interface with using PYTHI 23 G4VExternalDecayer interface with using PYTHIA6. In order 23 to be able to use PYTHIA6, which is written i 24 to be able to use PYTHIA6, which is written in FORTRAN, 24 a C++ interface class Pythia6 is provided. Th 25 a C++ interface class Pythia6 is provided. This class 25 interfaces only the PYTHIA6 functions relevan 26 interfaces only the PYTHIA6 functions relevant to decay. 26 27 27 The G4Pythia6Decayer is instantiated in the P 28 The G4Pythia6Decayer is instantiated in the P6DExtDecayerPhysics builder, 28 in the ConstructProcess() function where the 29 in the ConstructProcess() function where the external decayer is set 29 to G4Decay process for all particles. 30 to G4Decay process for all particles. 30 To demonstrate the decay with external decaye 31 To demonstrate the decay with external decayer, 31 the B- meson is defined in ExG4PrimaryGenerat 32 the B- meson is defined in ExG4PrimaryGeneratorAction01, 32 as it has no own decay table defined within G 33 as it has no own decay table defined within Geant4. 33 34 34 With PYTHIA6, it is possible to force a selec 35 With PYTHIA6, it is possible to force a selected decay 35 type. This selection can be chosen interactiv 36 type. This selection can be chosen interactively via 36 the implemented Geant4 UI command: 37 the implemented Geant4 UI command: 37 38 38 /pythia6Decayer/forceDecayType decayType 39 /pythia6Decayer/forceDecayType decayType 39 40 40 where the available decay types are listed i 41 where the available decay types are listed in the EDecayType 41 enumaration. 42 enumaration. 42 43 43 The classes Pythia6, G4Pythia6Decayer, G4Pyth 44 The classes Pythia6, G4Pythia6Decayer, G4Pythia6DecayerMessenger 44 are independent from the example classes and 45 are independent from the example classes and can be reused 45 in another user application. 46 in another user application. 46 47 47 Installation: 48 Installation: 48 49 49 1. Download the PYTHIA6 source file from the 50 1. Download the PYTHIA6 source file from the PYTHIA6 download site: 50 http://www.hepforge.org/downloads/pythia6 51 http://www.hepforge.org/downloads/pythia6 51 52 52 2A.) With CMake: Build pythia6 library 53 2A.) With CMake: Build pythia6 library 53 54 54 For a convenience a CMake file for buildin 55 For a convenience a CMake file for building Pythia6 library from 55 the source is provided in 56 the source is provided in 56 examples/extended/eventgenerator/CMakeList 57 examples/extended/eventgenerator/CMakeLists.txt.pythia6. 57 Build the pythia6 library following the in 58 Build the pythia6 library following the instructions in this file 58 and then define the environment variables: 59 and then define the environment variables: 59 PYTHIA6 the path where pythia6 li 60 PYTHIA6 the path where pythia6 library is installed 60 PYTHIA6_VERSION the pythia version 61 PYTHIA6_VERSION the pythia version 61 62 62 2B.) With GNUmake: Define the environment var 63 2B.) With GNUmake: Define the environment variables: 63 PYTHIA6 the path to pythia-versi 64 PYTHIA6 the path to pythia-versionX.f source code 64 PYTHIA6_VERSION the pythia version 65 PYTHIA6_VERSION the pythia version 65 66 66 e.g. If you download pythia-6.4.26.f.gz an 67 e.g. If you download pythia-6.4.26.f.gz and unzip it in $HOME, 67 then you have to set: 68 then you have to set: 68 export PYTHIA6=$HOME 69 export PYTHIA6=$HOME 69 export PYTHIA6_VERSION="6.4.26" 70 export PYTHIA6_VERSION="6.4.26" 70 71 71 Pythia6 will be then compiled together wit 72 Pythia6 will be then compiled together with example code. 72 73 73 3. Compilation: 74 3. Compilation: 74 Then the example is compiled in a standard 75 Then the example is compiled in a standard way, see examples/README_HowToRun. 75 Note that with GNUmake build, an additiona 76 Note that with GNUmake build, an additional step 'gmake setup' is 76 needed before 'gmake'. 77 needed before 'gmake'. 77 78 78 Execution: 79 Execution: 79 80 80 % pythia6_decayer pythia6_decayer.in 81 % pythia6_decayer pythia6_decayer.in 81 82 82 This example uses the following user action cl 83 This example uses the following user action classes from the extended examples common 83 repository available in common subdirectory: 84 repository available in common subdirectory: 84 DetectorConstruction 85 DetectorConstruction 85 GunPrimaryGeneratorAction 86 GunPrimaryGeneratorAction