DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Geant4Steppers.cpp
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 
14 // Framework include files
15 #include <DDG4/Factories.h>
16 
17 // Geant 4 include files
18 #include <G4Version.hh>
19 #include <G4ExplicitEuler.hh>
20 #include <G4ImplicitEuler.hh>
21 #include <G4SimpleRunge.hh>
22 #include <G4SimpleHeum.hh>
23 #include <G4ClassicalRK4.hh>
24 #include <G4ConstRK4.hh>
25 #include <G4CashKarpRKF45.hh>
26 
27 DECLARE_GEANT4_STEPPER(ImplicitEuler)
28 DECLARE_GEANT4_STEPPER(ExplicitEuler)
29 DECLARE_GEANT4_STEPPER(SimpleRunge)
30 DECLARE_GEANT4_STEPPER(SimpleHeum)
32 DECLARE_GEANT4_STEPPER(ClassicalRK4)
33 DECLARE_GEANT4_STEPPER(CashKarpRKF45)
34 
35 #if G4VERSION_NUMBER >=1030
36 #include <G4DoLoMcPriRK34.hh>
37 #include <G4DormandPrince745.hh>
38 #include <G4DormandPrinceRK56.hh>
39 #include <G4DormandPrinceRK78.hh>
40 #include <G4BogackiShampine23.hh>
41 #include <G4BogackiShampine45.hh>
42 DECLARE_GEANT4_STEPPER(DoLoMcPriRK34)
43 DECLARE_GEANT4_STEPPER(DormandPrince745)
44 DECLARE_GEANT4_STEPPER(DormandPrinceRK56)
45 DECLARE_GEANT4_STEPPER(DormandPrinceRK78)
46 DECLARE_GEANT4_STEPPER(BogackiShampine23)
47 DECLARE_GEANT4_STEPPER(BogackiShampine45)
48 #endif
49 
50 // Geant 4 include files
51 #include <G4MagHelicalStepper.hh>
52 #include <G4HelixExplicitEuler.hh>
53 #include <G4HelixImplicitEuler.hh>
54 #include <G4HelixMixedStepper.hh>
55 #include <G4HelixSimpleRunge.hh>
56 #include <G4HelixHeum.hh>
57 
58 DECLARE_GEANT4_MAGSTEPPER(HelixImplicitEuler)
59 DECLARE_GEANT4_MAGSTEPPER(HelixExplicitEuler)
60 DECLARE_GEANT4_MAGSTEPPER(HelixMixedStepper)
61 DECLARE_GEANT4_MAGSTEPPER(HelixSimpleRunge)
63 
64 #if G4VERSION_NUMBER>=1020
65 #include <G4NystromRK4.hh>
66 #include <G4RKG3_Stepper.hh>
67 DECLARE_GEANT4_MAGSTEPPER(RKG3_Stepper)
68 DECLARE_GEANT4_MAGSTEPPER(NystromRK4)
69 #endif
70 
71 // Geant 4 include files
72 #include <G4Mag_EqRhs.hh>
73 #include <G4Mag_SpinEqRhs.hh>
74 #include <G4Mag_UsualEqRhs.hh>
75 #include <G4KM_OpticalEqRhs.hh>
76 #include <G4KM_NucleonEqRhs.hh>
77 //Virtual: DECLARE_GEANT4_MAGMOTION(Mag_EqRhs);
78 DECLARE_GEANT4_MAGMOTION(Mag_SpinEqRhs)
79 DECLARE_GEANT4_MAGMOTION(Mag_UsualEqRhs)
80 //DECLARE_GEANT4_MAGMOTION(KM_OpticalEqRhs);
81 //DECLARE_GEANT4_MAGMOTION(KM_NucleonEqRhs);
82 
83 #if 0 // G4VERSION_NUMBER>=1002
84 // Undefined factories !!!
85 #include <G4MonopoleEq.hh>
86 #include <G4EqEMFieldWithEDM.hh>
87 #include <G4EqEMFieldWithSpin.hh>
88 #include <G4EqGravityField.hh>
89 #include <G4EqMagElectricField.hh>
90 
91 // G4EquationOfMotion*(G4UniformGravityField*)
92 DECLARE_GEANT4_MAGMOTION(EqGravityField)
93 // G4EquationOfMotion*(G4ElectroMagneticField*)
94 DECLARE_GEANT4_MAGMOTION(MonopoleEq)
95 DECLARE_GEANT4_MAGMOTION(EqMagElectricField)
96 DECLARE_GEANT4_MAGMOTION(EqEMFieldWithEDM)
97 DECLARE_GEANT4_MAGMOTION(EqEMFieldWithSpin)
98 #endif
DECLARE_GEANT4_STEPPER
#define DECLARE_GEANT4_STEPPER(name)
Plugin definition to create Geant4 stepper objects.
Definition: Factories.h:213
DECLARE_GEANT4_MAGSTEPPER
#define DECLARE_GEANT4_MAGSTEPPER(name)
Definition: Factories.h:214
Factories.h
DECLARE_GEANT4_MAGMOTION
#define DECLARE_GEANT4_MAGMOTION(name)
Plugin definition to create Geant4 equations of motion for magnetic fields.
Definition: Factories.h:216