2 // ********************************************************************
 
    3 // * License and Disclaimer                                           *
 
    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.                             *
 
   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.         *
 
   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 // ********************************************************************
 
   27 // $Id: G4VPreCompoundFragment.icc 90337 2015-05-26 08:34:27Z gcosmo $
 
   31 // Modif (03 September 2008) by J. M. Quesada for external choice of inverse 
 
   32 // cross section option 
 
   33 // JMQ (06 September 2008) Also external choice has been added for:
 
   34 //                      - superimposed Coulomb barrier (if useSICB=true) 
 
   35 // 23.08.2010 V.Ivanchenko general cleanup, move constructor and destructor 
 
   36 //            the source, make GetReactionProduct() and IsItPossible inlined
 
   38 inline G4bool G4VPreCompoundFragment::
 
   39 IsItPossible(const G4Fragment & aFragment) const
 
   41   G4int pplus = aFragment.GetNumberOfCharged();
 
   42   G4int pneut = aFragment.GetNumberOfParticles()-pplus;
 
   43   return ((pneut >= theA - theZ) && (pplus >= theZ) && (theMaxKinEnergy > 0));
 
   47 G4ReactionProduct * G4VPreCompoundFragment::GetReactionProduct() const
 
   49   G4ReactionProduct * theReactionProduct =
 
   50     new G4ReactionProduct(particle);
 
   51   theReactionProduct->SetMomentum(GetMomentum().vect());
 
   52   theReactionProduct->SetTotalEnergy(GetMomentum().e());
 
   53   return theReactionProduct;
 
   56 inline G4int G4VPreCompoundFragment::GetA() const 
 
   61 inline G4int G4VPreCompoundFragment::GetZ() const 
 
   66 inline G4int G4VPreCompoundFragment::GetRestA() const 
 
   71 inline G4int G4VPreCompoundFragment::GetRestZ() const 
 
   76 inline G4double G4VPreCompoundFragment::GetBindingEnergy() const 
 
   78   return theBindingEnergy;
 
   81 inline G4double G4VPreCompoundFragment::GetEnergyThreshold() const 
 
   83   return theMaxKinEnergy - theCoulombBarrier;
 
   86 inline G4double G4VPreCompoundFragment::GetEmissionProbability() const 
 
   88   return theEmissionProbability;
 
   91 inline G4double G4VPreCompoundFragment::GetNuclearMass(void) const 
 
   96 inline G4double G4VPreCompoundFragment::GetRestNuclearMass() const 
 
  102 const G4LorentzVector& G4VPreCompoundFragment::GetMomentum() const 
 
  108 void G4VPreCompoundFragment::SetMomentum(const G4LorentzVector & value) 
 
  113 //for inverse cross section choice
 
  114 inline void G4VPreCompoundFragment::SetOPTxs(G4int opt)
 
  119 //for superimposed Coulomb Barrier for inverse cross sections
 
  120 inline void G4VPreCompoundFragment::UseSICB(G4bool use)