ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CexmcPhysicsManager.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CexmcPhysicsManager.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  * Filename: CexmcPhysicsManager.hh
30  *
31  * Description: interface for external access to physics aspects
32  *
33  * Version: 1.0
34  * Created: 27.10.2009 23:10:31
35  * Revision: none
36  * Compiler: gcc
37  *
38  * Author: Alexey Radkov (),
39  * Company: PNPI
40  *
41  * =============================================================================
42  */
43 
44 #ifndef CEXMC_PHYSICS_MANAGER_HH
45 #define CEXMC_PHYSICS_MANAGER_HH
46 
47 #include <G4Types.hh>
48 #include <G4ThreeVector.hh>
49 
51 class G4Track;
52 class G4StepPoint;
54 class CexmcSetup;
56 
57 
59 {
60  public:
62 
63  virtual ~CexmcPhysicsManager();
64 
65  public:
66  virtual CexmcProductionModel * GetProductionModel( void ) = 0;
67 
68  virtual G4bool IsStudiedProcessAllowed( void ) const = 0;
69 
70  virtual void ResampleTrackLengthInTarget( const G4Track * track,
71  const G4StepPoint * stepPoint = NULL ) = 0;
72 
73  virtual void SetupConstructionHook( const CexmcSetup * setup ) = 0;
74 
75  public:
77 
79 
81 
82  G4double GetProposedMaxIL( void ) const;
83 
84  void SetMaxIL( const G4ThreeVector & direction );
85 
87 
88  void SetProposedMaxIL( G4double value );
89 
90  protected:
91  virtual void CalculateBasicMaxIL(
92  const G4ThreeVector & direction ) = 0;
93 
94  protected:
96 
98 
100 
102 
104 
105  private:
107 };
108 
109 
111  void ) const
112 {
114 }
115 
116 
118  void )
119 {
121 }
122 
123 
125  void )
126 {
128 }
129 
130 
132 {
133  return proposedMaxIL;
134 }
135 
136 
137 inline void CexmcPhysicsManager::SetMaxIL( const G4ThreeVector & direction )
138 {
139  CalculateBasicMaxIL( direction );
141 }
142 
143 
145 {
148 }
149 
150 
152 {
154 }
155 
156 
157 #endif
158