Changeset 1196 for trunk/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh
- Timestamp:
- Nov 25, 2009, 5:13:58 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4HadronicInteraction.hh,v 1. 9 2009/01/24 11:56:27vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4HadronicInteraction.hh,v 1.13 2009/10/02 17:18:33 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // Hadronic Interaction abstract base class … … 41 41 // 23-Jan-2009 V.Ivanchenko move constructor and destructor to the body 42 42 // and reorder methods in the header 43 // 29-Jun-2009 V.Ivanchenko add SampleInvariantT method 44 // 29-Aug-2009 V.Ivanchenko moved G4ReactionDynamics to G4InelasticInteraction, 45 // add const pointers, and added recoilEnergyThreshold 46 // member and accesors 43 47 44 48 // Class Description … … 52 56 53 57 #include "G4HadFinalState.hh" 54 #include "G4ReactionDynamics.hh"55 58 #include "G4Material.hh" 56 59 #include "G4Nucleus.hh" 57 60 #include "G4Track.hh" 58 61 #include "G4HadProjectile.hh" 62 #include "G4ReactionDynamics.hh" 59 63 60 64 class G4HadronicInteraction 61 65 { 62 66 public: // With description 63 64 67 65 68 G4HadronicInteraction(const G4String& modelName = "HadronicModel"); … … 69 72 virtual G4HadFinalState *ApplyYourself(const G4HadProjectile &aTrack, 70 73 G4Nucleus & targetNucleus ) = 0; 71 // This is the interface to implement for final state production code. 74 // The interface to implement for final state production code. 75 76 virtual G4double SampleInvariantT(const G4ParticleDefinition* p, 77 G4double plab, 78 G4int Z, G4int A); 79 // The interface to implement sampling of scattering or change exchange 72 80 73 81 virtual G4bool IsApplicable(const G4HadProjectile &/*aTrack*/, 74 82 G4Nucleus & /*targetNucleus*/) 75 { 83 { return true;} 76 84 77 85 inline G4double GetMinEnergy() const 78 86 { return theMinEnergy; } 79 87 80 virtualG4double GetMinEnergy( const G4Material *aMaterial,81 88 G4double GetMinEnergy( const G4Material *aMaterial, 89 const G4Element *anElement ) const; 82 90 83 inline void SetMinEnergy( constG4double anEnergy )91 inline void SetMinEnergy( G4double anEnergy ) 84 92 { theMinEnergy = anEnergy; } 85 93 86 v irtual void SetMinEnergy( G4double anEnergy,G4Element *anElement );87 88 v irtual void SetMinEnergy( G4double anEnergy,G4Material *aMaterial );94 void SetMinEnergy( G4double anEnergy, const G4Element *anElement ); 95 96 void SetMinEnergy( G4double anEnergy, const G4Material *aMaterial ); 89 97 90 98 inline G4double GetMaxEnergy() const 91 99 { return theMaxEnergy; } 92 100 93 virtualG4double GetMaxEnergy( const G4Material *aMaterial,94 101 G4double GetMaxEnergy( const G4Material *aMaterial, 102 const G4Element *anElement ) const; 95 103 96 104 inline void SetMaxEnergy( const G4double anEnergy ) 97 105 { theMaxEnergy = anEnergy; } 98 106 99 v irtual void SetMaxEnergy( G4double anEnergy,G4Element *anElement );100 101 v irtual void SetMaxEnergy( G4double anEnergy,G4Material *aMaterial );107 void SetMaxEnergy( G4double anEnergy, const G4Element *anElement ); 108 109 void SetMaxEnergy( G4double anEnergy, const G4Material *aMaterial ); 102 110 103 111 inline const G4HadronicInteraction *GetMyPointer() const … … 113 121 { return theModelName; } 114 122 115 public: // Without description 116 117 virtual void DeActivateFor( G4Material *aMaterial ); 118 119 virtual void ActivateFor( G4Material *aMaterial ) 123 void DeActivateFor( const G4Material *aMaterial ); 124 125 inline void ActivateFor( const G4Material *aMaterial ) 120 126 { 121 127 Block(); … … 124 130 } 125 131 126 v irtual void DeActivateFor(G4Element *anElement );127 virtual void ActivateFor(G4Element *anElement )132 void DeActivateFor( const G4Element *anElement ); 133 inline void ActivateFor( const G4Element *anElement ) 128 134 { 129 135 Block(); … … 132 138 } 133 139 134 virtual G4bool IsBlocked( const G4Material *aMaterial ) const; 135 136 virtual G4bool IsBlocked( const G4Element *anElement) const; 140 G4bool IsBlocked( const G4Material *aMaterial ) const; 141 142 G4bool IsBlocked( const G4Element *anElement) const; 143 144 inline void SetRecoilEnergyThreshold(G4double val) 145 { recoilEnergyThreshold = val; } 146 147 G4double GetRecoilEnergyThreshold() const 148 { return recoilEnergyThreshold;} 137 149 138 150 inline G4bool operator==(const G4HadronicInteraction &right ) const … … 149 161 150 162 protected: 163 164 inline void SetModelName(const G4String& nam) 165 { theModelName = nam; } 151 166 152 167 inline G4bool IsBlocked() const { return isBlocked;} … … 164 179 // 2: more 165 180 // (instead of verboseLevel as found in G4VProcess) 166 167 G4ReactionDynamics theReactionDynamics; 168 169 // these two have global validity 170 // units are assumed to be MeV 171 181 182 // these two have global validity energy range 172 183 G4double theMinEnergy; 173 184 G4double theMaxEnergy; 174 185 175 186 G4bool isBlocked; 176 187 188 private: 189 190 G4double recoilEnergyThreshold; 191 177 192 G4String theModelName; 178 193 179 private: 180 181 std::vector<std::pair<G4double, G4Material *> > theMinEnergyList; 182 std::vector<std::pair<G4double, G4Material *> > theMaxEnergyList; 183 std::vector<std::pair<G4double, G4Element *> > theMinEnergyListElements; 184 std::vector<std::pair<G4double, G4Element *> > theMaxEnergyListElements; 185 std::vector<G4Material *> theBlockedList; 186 std::vector<G4Element *> theBlockedListElements; 194 std::vector<std::pair<G4double, const G4Material *> > theMinEnergyList; 195 std::vector<std::pair<G4double, const G4Material *> > theMaxEnergyList; 196 std::vector<std::pair<G4double, const G4Element *> > theMinEnergyListElements; 197 std::vector<std::pair<G4double, const G4Element *> > theMaxEnergyListElements; 198 std::vector<const G4Material *> theBlockedList; 199 std::vector<const G4Element *> theBlockedListElements; 187 200 }; 188 201
Note: See TracChangeset
for help on using the changeset viewer.