ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParallelWorldScoringProcess.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParallelWorldScoringProcess.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 //
29 //---------------------------------------------------------------
30 //
31 // G4ParallelWorldScoringProcess.hh
32 //
33 // Description:
34 // This procss takes a parallel world and limits a step
35 // on the boundaries of volumes in the parallel world.
36 // It invokes sensitive detectors assigned in the parallel
37 // world.
38 //
39 //---------------------------------------------------------------
40 
41 
42 #ifndef G4ParallelWorldScoringProcess_h
43 #define G4ParallelWorldScoringProcess_h 1
44 
45 #include "globals.hh"
46 class G4Step;
47 class G4Navigator;
49 class G4PathFinder;
50 class G4VTouchable;
51 class G4VPhysicalVolume;
52 class G4ParticleChange;
54 #include "G4VProcess.hh"
55 #include "G4FieldTrack.hh"
56 #include "G4TouchableHandle.hh"
57 
58 //------------------------------------------
59 //
60 // G4ParallelWorldScoringProcess class
61 //
62 //------------------------------------------
63 
64 
65 // Class Description:
66 
68 {
69 public: // with description
70 
71  //------------------------
72  // Constructor/Destructor
73  //------------------------
74 
75  G4ParallelWorldScoringProcess(const G4String& processName = "ParaWorldScore",
78 
79  //--------------------------------------------------------------
80  // Set Paralle World
81  //--------------------------------------------------------------
82 
83  void SetParallelWorld(G4String parallelWorldName);
84  void SetParallelWorld(G4VPhysicalVolume* parallelWorld);
86 
87  //--------------------------------------------------------------
88  // Process interface
89  //--------------------------------------------------------------
90 
91  void StartTracking(G4Track*);
92 
93  //------------------------------------------------------------------------
94  // GetPhysicalInteractionLength() and DoIt() methods for AtRest
95  //------------------------------------------------------------------------
96 
98  const G4Track& ,
100  );
101 
103  const G4Track& ,
104  const G4Step&
105  );
106 
107  //------------------------------------------------------------------------
108  // GetPhysicalInteractionLength() and DoIt() methods for AlongStep
109  //------------------------------------------------------------------------
110 
112  const G4Track&,
113  G4double ,
114  G4double ,
115  G4double&,
117  );
118 
120  const G4Track& ,
121  const G4Step&
122  );
123 
124  //-----------------------------------------------------------------------
125  // GetPhysicalInteractionLength() and DoIt() methods for PostStep
126  //-----------------------------------------------------------------------
127 
129  G4double previousStepSize,
131 
132  G4VParticleChange* PostStepDoIt(const G4Track& ,const G4Step& );
133 
134 private:
135  void CopyStep(const G4Step & step);
136 
140 
143 
146 
147  // -------------------------------
148  // Navigation in the Ghost World:
149  // -------------------------------
159 
160  // ******************************************************
161  // ******************************************************
162  //
163  // For TESTS:
164  //
165  // ******************************************************
166  // ******************************************************
167 public:
168  void Verbose(const G4Step&) const;
169 };
170 
171 #endif