Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 #ifndef G4BinaryLightIonReaction_h 23 #ifndef G4BinaryLightIonReaction_h 27 #define G4BinaryLightIonReaction_h 1 << 24 #define G4BinaryLightIonReaction_h 28 25 29 #include "G4BinaryCascade.hh" 26 #include "G4BinaryCascade.hh" 30 #include "G4PreCompoundModel.hh" 27 #include "G4PreCompoundModel.hh" 31 #include "G4HadFinalState.hh" 28 #include "G4HadFinalState.hh" 32 #include "G4ExcitationHandler.hh" 29 #include "G4ExcitationHandler.hh" 33 30 34 class G4BinaryLightIonReaction : public G4Hadr << 31 class G4BinaryLightIonReaction : public G4HadronicInteraction 35 { 32 { 36 public: 33 public: 37 G4BinaryLightIonReaction(G4VPreCompoundMod << 34 G4BinaryLightIonReaction(); 38 virtual ~G4BinaryLightIonReaction(); << 35 virtual ~G4BinaryLightIonReaction(){} 39 G4HadFinalState* ApplyYourself(const G4Had << 36 G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, 40 37 G4Nucleus& theNucleus); 41 inline void SetPrecompound(G4VPreCompoundM << 38 42 inline void SetDeExcitation(G4ExcitationHa << 43 << 44 virtual void ModelDescription(std::ostream << 45 << 46 private: 39 private: 47 G4bool EnergyAndMomentumCorrector(G4Reacti << 40 G4BinaryCascade theModel; 48 G4LorentzVector& TotalCollision << 41 G4ExcitationHandler theHandler; 49 G4bool SetLighterAsProjectile(G4LorentzVec << 42 G4PreCompoundModel theProjectileFragmentation; 50 G4ReactionProductVector * FuseNucleiAndPro << 51 G4ReactionProductVector * Interact(G4Loren << 52 G4double GetProjectileExcitation(); << 53 void DeExciteSpectatorNucleus(G4ReactionPr << 54 G4double theStatist << 55 G4LorentzVector SortResult(G4ReactionProdu << 56 << 57 G4BinaryCascade* theModel; << 58 G4ExcitationHandler* theHandler; << 59 G4VPreCompoundModel* theProjectileFragment << 60 G4HadFinalState theResult; 43 G4HadFinalState theResult; 61 G4int pA, pZ, tA, tZ,spectatorA,spectatorZ << 44 G4bool EnergyAndMomentumCorrector(G4ReactionProductVector* products, 62 G4Fancy3DNucleus * projectile3dNucleus, * << 45 G4LorentzVector& TotalCollisionMom); 63 G4FermiMomentum theFermi; << 64 G4LorentzVector pInitialState, pFinalState << 65 << 66 G4bool debug_G4BinaryLightIonReactionResul << 67 static G4int theBLIR_ID; << 68 }; 46 }; 69 inline void G4BinaryLightIonReaction::SetPreco << 70 { << 71 if(ptr) { theProjectileFragmentation = ptr; << 72 theHandler = theProjectileFragmentation->Get << 73 } << 74 inline void G4BinaryLightIonReaction::SetDeExc << 75 { << 76 theProjectileFragmentation->SetExcitationHan << 77 theHandler = ptr; << 78 } << 79 47 80 #endif 48 #endif 81 49