ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4AdjointSimMessenger.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4AdjointSimMessenger.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: G4AdjointSimMessenger.hh
29 // Author: L. Desorgher
30 // Organisation: SpaceIT GmbH
31 // Contract: ESA contract 21435/08/NL/AT
32 // Customer: ESA/ESTEC
34 //
35 // CHANGE HISTORY
36 // --------------
37 // ChangeHistory:
38 // -1st January 2007 creation by L. Desorgher
39 // -November-December 2009 Some cleaning and adaptation for the first Release in the Geant4 toolkit, L. Desorgher
40 //
41 //
42 //-------------------------------------------------------------
43 // Documentation:
44 // This class represents the Messenger that defined the G4UI macro comands allowing the
45 // user contreol an adjoint/reverse MC simulation. It calls methods of G4AdjointSimManager
46 // List of commands
47 // -----------------
48 // 1)Start an adjoint simulation
49 // --------------------------------------------
50 // Command:
51 // -/adjoint/start_run nb: Start an adjoint simulation with a number of events given by nb.
52 // 2)Definition of the external source
53 // ---------------------------------------------------
54 // The external source represents the real external source of particles till which adjoint particles are tracked in the reverse tracking mode
55 // of the simulation (see G4AdjointSimManager.hh and G4Application Developer guide for more infos).
56 // The user can define the source as the external surface of a sphere or of G4 volume of the geometry. He can also set the maximum energy of the
57 // source. If an adjoint particle get an energy higher than this maximum energy before reaching the external surface source it is killed without being registered.
58 // Commands:
59 // -/adjoint/DefineSphericalExtSource R X Y Z unit_length:
60 // The external source is set on a sphere with radius R and centered on position (X,Y,Z)
61 //
62 // -/adjoint/DefineSphericalExtSourceCenteredOnAVolume phys_vol_name R unit_length
63 // The external source is set on a sphere with radius R and with its center position located at the center of the
64 // the physical volume specified by the name phys_vol_name.
65 // -/adjoint/DefineExtSourceOnExtSurfaceOfAVolume phys_vol_name
66 // The external surface is set as the external boundary of a the physical volume with name phys_vol_name
67 // -/adjoint/SetExtSourceEmax Emax energy_unit
68 // Set the maximum energy of the external source
69 //
70 //
71 // 3)Definition of the adjoint source
72 // ---------------------------------------------------
73 // The adjoint source represents the source from which adjoint primary particles are generated.(see G4AdjointSimManager.hh and G4Application Developer guide for more infos)
74 // The user can define the source as the external surface of a sphere or of G4 volume of the geometry. He set the minimum maximum energy of the
75 // source and define which type of adjoint primary particles should be considered.
76 // Commands:
77 // -/adjoint/DefineSphericalAdjSource R X Y Z unit_length:
78 // The adjoint source is set on a sphere with radius R and centered on position (X,Y,Z)
79 //
80 // -/adjoint/DefineSphericalAdjSourceCenteredOnAVolume phys_vol_name R unit_length
81 // The external source is set on a sphere with radius R and with its center position located at the center of the
82 // the physical volume specified by the name phys_vol_name.
83 // -/adjoint/DefineAdjSourceOnExtSurfaceOfAVolume phys_vol_name
84 // The external surface is set as the external boundary of a the physical volume with name phys_vol_name
85 //
86 // -/adjoint/SetAdjSourceEmin Emin energy_unit
87 // Set the minimum energy of the external source
88 //
89 // -/adjoint/SetAdjSourceEmax Emax energy_unit
90 // Set the maximum energy of the external source
91 //
92 // -/adjoint/ConsiderAsPrimary particle_name
93 // The type of particle specified by "particle_name" will be added in the list of primary adjoint particles.
94 // The list of candidates depends on the reverse physics processes considered in the simulation. At the most the
95 // potential candidates are (e-, gamma, proton , ion)
96 //
97 // -/adjoint/NeglectAsPrimary particle_name
98 // The type of particle specified by "particle_name" will be removed from the list of primary adjoint particles.
99 // The list of candidates depends on the reverse physics processes considered in the simulation. At the most the
100 // potential candidates are (e-, gamma, proton , ion)
101 //
102 //
103 
104 #ifndef G4AdjointSimMessenger_h
105 #define G4AdjointSimMessenger_h 1
106 
107 #include "globals.hh"
108 #include "G4UImessenger.hh"
109 
110 class G4AdjointSimManager;
111 class G4UIdirectory;
112 class G4UIcmdWithAString;
115 class G4UIcmdWithABool;
118 class G4UIcmdWithADouble;
119 /*
120 #ifdef G4MULTITHREADED
121 class G4MTAdjointSimManager;
122 #endif
123 */
124 
125 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
126 
128 {
129  public:
131 /*
132 #ifdef G4MULTITHREADED
133  G4AdjointSimMessenger(G4MTAdjointSimManager* );
134 #endif
135 */
136 
138 
140 
141  private:
143 /*
144 #ifdef G4MULTITHREADED
145  G4MTAdjointSimManager* theMTAdjointRunManager;
146 #endif
147 */
148 
151 
156 
160 
163 
164 
167 
171 
172 };
173 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
174 
175 #endif
176