ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4PhysicsListHelper.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4PhysicsListHelper.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // ------------------------------------------------------------
28 // GEANT 4 class header file
29 // Class Description:
30 // This class is a helper class for physics lists to register processes
31 // according to the ordering parameter table
32 // This class is a singleton
33 // -------------------------------------------
34 // History
35 // first version 29 Apr. 2011 by H.Kurashige
36 // ------------------------------------------------------------
37 
38 #ifndef G4PhysicsListHelper_h
39 #define G4PhysicsListHelper_h 1
40 #include "globals.hh"
41 #include "G4ios.hh"
42 #include <vector>
43 
44 #include "G4ParticleTable.hh"
45 #include "G4ParticleDefinition.hh"
48 
49 class G4VProcess;
50 
52 {
53 
55 
56  private:
57  // Hide constructor and destructor
60 
61  public: // with description
62  // This method gives the ponter to the physics list helper
64 
65  //Register a process to the particle type
66  // according to the ordering parameter table
67  // 'true' is returned if the process is registerd successfully
70 
71  // User must invoke this method in his ConstructProcess()
72  // implementation in order to insures particle transportation.
73  void AddTransportation();
74 
75  // Set flag for using CoupledTransportation
76  void UseCoupledTransportation(G4bool vl=true);
77 
78  // Change the thresholds for killing looping tracks of the
79  // transportation (simple or coupled.)
82 
84  public:
85  // check consistencies of list of particles
86  void CheckParticleList() const;
87 
89  public:
90  // Dump OrdingParameterTable
91  void DumpOrdingParameterTable(G4int subType = -1) const;
93 
94  private:
97 
99  public: // with description
101  G4int GetVerboseLevel() const;
102  // set/get controle flag for output message
103  // 0: Silent
104  // 1: Warning message
105  // 2: More
106 
108  private:
110 
111  // the particle table has the complete List of existing particle types
114 
116  G4int theLooperThresholds= 1; // 0 = Low, 1 = default, 2 = high
118 
120 
121  private:
122  typedef std::vector<G4PhysicsListOrderingParameter> G4OrdParamTable;
126 };
127 
128 
129 inline
131 {
133 }
134 
135 inline
137 {
139 }
140 
141 inline
143 {
144  return verboseLevel;
145 }
146 
147 
148 #endif
149