ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4WrapperProcess.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4WrapperProcess.cc
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 //
29 // ------------------------------------------------------------
30 // GEANT 4 class implementation file
31 //
32 // ------------------------------------------------------------
33 // New Physics scheme 18 Dec. 1996 H.Kurahige
34 // ------------------------------------------------------------
35 
36 #include "G4WrapperProcess.hh"
37 
39  G4ProcessType aType)
40  : G4VProcess(aName,aType),
41  pRegProcess(nullptr)
42 {
43 }
44 
46  : G4VProcess(*((G4VProcess*)(&right))), pRegProcess(right.pRegProcess)
47 {
48 }
49 
51 {
52  if (pRegProcess!=nullptr) delete pRegProcess;
53 }
54 
56 {
58 }
59 
62  G4double previousStepSize,
63  G4double currentMinimumStep,
64  G4double& proposedSafety,
65  G4GPILSelection* selection )
66 {
67  return pRegProcess->
69  previousStepSize,
70  currentMinimumStep,
71  proposedSafety,
72  selection );
73 }
74 
78 {
79  return pRegProcess->AtRestGetPhysicalInteractionLength( track, condition );
80 }
81 
84  G4double previousStepSize,
86 {
88  previousStepSize,
89  condition );
90 }
91 
93 {
94  pRegProcess->SetProcessManager(procMan);
95 }
96 
98 {
100 }
101 
103  const G4Step& stepData )
104 {
105  return pRegProcess->PostStepDoIt( track, stepData );
106 }
107 
109  const G4Step& stepData )
110 {
111  return pRegProcess->AlongStepDoIt( track, stepData );
112 }
113 
115  const G4Step& stepData )
116 {
117  return pRegProcess->AtRestDoIt( track, stepData );
118 }
119 
121 {
122  return pRegProcess->IsApplicable(particle);
123 }
124 
126 {
127  return pRegProcess->BuildPhysicsTable(particle);
128 }
129 
131 {
132  return pRegProcess->PreparePhysicsTable(particle);
133 }
134 
137  const G4String& directory,
138  G4bool ascii)
139 {
140  return pRegProcess->StorePhysicsTable(particle, directory, ascii);
141 }
142 
145  const G4String& directory,
146  G4bool ascii)
147 {
148  return pRegProcess->RetrievePhysicsTable(particle, directory, ascii);
149 }
150 
152 {
153  pRegProcess->StartTracking(track);
154 }
155 
157 {
159 }
160 
162 {
163  pRegProcess=process;
164  theProcessName += process->GetProcessName();
165  theProcessType = process->GetProcessType();
166 }
167 
169 {
170  return pRegProcess;
171 }
172 
174  G4WrapperProcess* master = static_cast<G4WrapperProcess*>(masterP);
175  //Cannot use getter because it returns "const" and we do not want
176  //to cast away constness explicitly (even if this is the same)
178 }