Import Geant4 0.1.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.3 1998/12/01 17:37:17 pavliouk Exp $
|
||||
# $Id: GNUmakefile,v 1.1 1999/01/07 16:12:03 gunter Exp $
|
||||
# -----------------------------------------------------------
|
||||
# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96.
|
||||
# -----------------------------------------------------------
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
For the moment a trivial (and hence approximative) interface to pre-equilibrium
|
||||
is provided, along with the diffractive string approach in case you would like
|
||||
to try the generator category in this first release.
|
||||
Note that these two are fairly fresh code, and testing and
|
||||
physics validation will continue.
|
||||
+3
-2
@@ -9,7 +9,8 @@
|
||||
#include "G4KineticTrackVector.hh"
|
||||
#include "G4FragmentVector.hh"
|
||||
#include "G4ParticleChange.hh"
|
||||
#include "G4DynamicParticleVector.hh"
|
||||
#include "G4ReactionProductVector.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
|
||||
class G4GeneratorPrecompoundInterface : public G4VIntraNuclearTransportModel
|
||||
{
|
||||
@@ -23,7 +24,7 @@ private:
|
||||
|
||||
public:
|
||||
G4VParticleChange* ApplyYourself(const G4Track& aTrack, G4Nucleus& theNucleus);
|
||||
G4DynamicParticleVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus);
|
||||
G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
+17
-8
@@ -16,10 +16,10 @@
|
||||
return new G4ParticleChange;
|
||||
}
|
||||
|
||||
G4DynamicParticleVector* G4GeneratorPrecompoundInterface::
|
||||
G4ReactionProductVector* G4GeneratorPrecompoundInterface::
|
||||
Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus)
|
||||
{
|
||||
G4DynamicParticleVector * theTotalResult = new G4DynamicParticleVector;
|
||||
G4ReactionProductVector * theTotalResult = new G4ReactionProductVector;
|
||||
|
||||
// decay the strong resonances
|
||||
G4KineticTrackVector *result1, *secondaries, *result;
|
||||
@@ -31,7 +31,7 @@
|
||||
G4ParticleDefinition * pdef;
|
||||
pdef=result1->at(aResult)->GetDefinition();
|
||||
secondaries=NULL;
|
||||
if ( pdef->GetPDGWidth() > 0 || pdef->GetPDGLifeTime() < 1*ns )
|
||||
if ( pdef->IsShortLived() )
|
||||
{
|
||||
secondaries = result1->at(aResult)->Decay();
|
||||
}
|
||||
@@ -69,15 +69,24 @@
|
||||
if(aTrack->GetDefinition() != G4Proton::Proton() &&
|
||||
aTrack->GetDefinition() != G4Neutron::Neutron())
|
||||
{
|
||||
theTotalResult->insert(new G4DynamicParticle(aTrack->GetDefinition(), aTrack->Get4Momentum()));
|
||||
G4ReactionProduct * theNew = new G4ReactionProduct(aTrack->GetDefinition());
|
||||
theNew->SetMomentum(aTrack->Get4Momentum().vect());
|
||||
theNew->SetTotalEnergy(aTrack->Get4Momentum().e());
|
||||
theTotalResult->insert(theNew);
|
||||
}
|
||||
else if(aTrack->Get4Momentum().t() - aTrack->Get4Momentum().mag()>80*MeV)
|
||||
{
|
||||
theTotalResult->insert(new G4DynamicParticle(aTrack->GetDefinition(), aTrack->Get4Momentum()));
|
||||
G4ReactionProduct * theNew = new G4ReactionProduct(aTrack->GetDefinition());
|
||||
theNew->SetMomentum(aTrack->Get4Momentum().vect());
|
||||
theNew->SetTotalEnergy(aTrack->Get4Momentum().e());
|
||||
theTotalResult->insert(theNew);
|
||||
}
|
||||
else if(aTrack->GetPosition().mag() > theNucleus->GetNuclearRadius())
|
||||
{
|
||||
theTotalResult->insert(new G4DynamicParticle(aTrack->GetDefinition(), aTrack->Get4Momentum()));
|
||||
G4ReactionProduct * theNew = new G4ReactionProduct(aTrack->GetDefinition());
|
||||
theNew->SetMomentum(aTrack->Get4Momentum().vect());
|
||||
theNew->SetTotalEnergy(aTrack->Get4Momentum().e());
|
||||
theTotalResult->insert(theNew);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -120,11 +129,11 @@
|
||||
anInitialState.SetNumberOfHoles(numberOfHoles);
|
||||
anInitialState.SetNumberOfExcitons(numberOfEx);
|
||||
anInitialState.SetMomentum(exciton4Momentum);
|
||||
anInitialState.SetExcitationEnergy(exEnergy);
|
||||
// anInitialState.SetExcitationEnergy(exEnergy); // now a redundant call.
|
||||
|
||||
// call pre-compound
|
||||
const G4Fragment aFragment(anInitialState);
|
||||
G4DynamicParticleVector * aPreResult = theDeExcitation->DeExcite(aFragment);
|
||||
G4ReactionProductVector * aPreResult = theDeExcitation->DeExcite(aFragment);
|
||||
|
||||
// fill pre-compound part into the result, and return
|
||||
for(G4int ll=0; ll<aPreResult->entries(); ll++)
|
||||
|
||||
Reference in New Issue
Block a user