ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4AdjointSteppingAction.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4AdjointSteppingAction.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 //
28 // Class Name: G4AdjointSteppingAction
29 // Author: L. Desorgher
30 // Contract: ESA contract 21435/08/NL/AT
31 // Organisation: SpaceIT GmbH
32 // Customer: ESA/ESTEC
34 //
35 // CHANGE HISTORY
36 // --------------
37 // ChangeHistory:
38 // -15/01/2007 Creation by L. Desorgher
39 // -01/11/2009 Some cleaning and adding of documentation for the first Release in the Geant4 toolkit, L. Desorgher
40 // -04/11/2009 Adding the possibility to use user stepping action, L. Desorgher
41 // -20/11/2009 Correct the stop of adjoint particles tracking when it reenters the adjoint source.
42 //
43 //
44 //-------------------------------------------------------------
45 // Documentation:
46 // Stepping action used in the adjoint simulation.
47 // It is responsible to stop the adjoint tracking phase when:
48 // -a)The adjoint track reaches the external surface.
49 // -b)The being tracked adjoint dynamic particle get an energy higher than the maximum energy of the external source.
50 // -c)The adjoint track enters the volume delimited by the adjoint source.
51 // In the case a) the info (energy,weight,...) of the adjoint dynamic particle associated to the track
52 // when crossing the external source is registered and in the next event a forward primary is generated. In the other cases b) and c)
53 // The next generated fwd particle is killed before being tracked and the next tracking of an adjoint particle is started directly.
54 //
55 
56 #ifndef G4AdjointSteppingAction_h
57 #define G4AdjointSteppingAction_h 1
58 
59 #include "G4UserSteppingAction.hh"
60 #include "globals.hh"
61 #include "G4ThreeVector.hh"
62 
65 
66 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
67 
69 {
70  public:
73 
74  void UserSteppingAction(const G4Step*);
75 
77  inline void SetStartEvent(G4bool aBool){start_event =aBool;}
81  inline G4double GetLastEkin(){return last_ekin;}
86  theUserAdjointSteppingAction = anAction;}
88  theUserFwdSteppingAction = anAction;}
93  private:
94 
98 
110 
111 
112 };
113 #endif
114