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 79693 2014-03-12 13:00:49Z 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) 
 
   44    && (theMaximalKineticEnergy > 0));
 
   49 G4ReactionProduct * G4VPreCompoundFragment::GetReactionProduct() const
 
   51   G4ReactionProduct * theReactionProduct =
 
   52     new G4ReactionProduct(particle);
 
   53   theReactionProduct->SetMomentum(GetMomentum().vect());
 
   54   theReactionProduct->SetTotalEnergy(GetMomentum().e());
 
   55   return theReactionProduct;
 
   58 inline G4int G4VPreCompoundFragment::GetA() const 
 
   63 inline G4int G4VPreCompoundFragment::GetZ() const 
 
   68 inline G4int G4VPreCompoundFragment::GetRestA() const 
 
   70   return theRestNucleusA;
 
   73 inline G4int G4VPreCompoundFragment::GetRestZ() const 
 
   75   return theRestNucleusZ;
 
   78 inline G4double G4VPreCompoundFragment::ResidualA13() const 
 
   80   return theRestNucleusA13;
 
   83 inline G4double G4VPreCompoundFragment::GetCoulombBarrier() const 
 
   85   return theCoulombBarrier;
 
   88 inline G4double G4VPreCompoundFragment::GetBindingEnergy() const 
 
   90   return theBindingEnergy;
 
   93 inline G4double G4VPreCompoundFragment::GetMaximalKineticEnergy() const 
 
   95   return theMaximalKineticEnergy;
 
   98 inline G4double G4VPreCompoundFragment::GetEnergyThreshold() const 
 
  100   return theMaximalKineticEnergy - theCoulombBarrier;
 
  103 inline G4double G4VPreCompoundFragment::GetEmissionProbability() const 
 
  105   return theEmissionProbability;
 
  108 inline G4double G4VPreCompoundFragment::GetNuclearMass(void) const 
 
  113 inline G4double G4VPreCompoundFragment::GetRestNuclearMass() const 
 
  115   return theRestNucleusMass;
 
  118 inline G4double G4VPreCompoundFragment::GetReducedMass() const 
 
  120   return theReducedMass;
 
  124 const G4LorentzVector& G4VPreCompoundFragment::GetMomentum() const 
 
  130 void G4VPreCompoundFragment::SetMomentum(const G4LorentzVector & value) 
 
  135 inline const G4String G4VPreCompoundFragment::
 
  138   return particle->GetParticleName(); 
 
  141 //for inverse cross section choice
 
  142 inline void G4VPreCompoundFragment::SetOPTxs(G4int opt)
 
  147 //for superimposed Coulomb Barrier for inverse cross sections
 
  148 inline void G4VPreCompoundFragment::UseSICB(G4bool use)