Files
geant4/source/processes/hadronic/models/incl/include/G4InclInput.hh
T
2016-06-09 16:25:56 +02:00

173 lines
4.9 KiB
C++

//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4INCLINPUT_HH
#define G4INCLINPUT_HH 1
#include "G4Nucleus.hh"
#include "G4HadProjectile.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
#include "G4Deuteron.hh"
#include "G4Triton.hh"
#include "G4He3.hh"
#include "G4Alpha.hh"
#include "G4ParticleTable.hh"
#define FSIZE 15
/**
* Initial values of a hadronic cascade problem.
*/
class G4InclInput {
public:
G4InclInput() {
isExtended = false;
breakupThreshold = 10;
fTargetA = 0;
fTargetZ = 0;
fBulletType = 0;
fBulletE = 0.0;
fTimeScale = 1.0;
fNuclearPotential = 45.0; // Nuclear potential
icoup = 0;
theExtendedProjectileA = 0;
theExtendedProjectileZ = 0;
isExtended = false;
fMinProtonE = 0.0;
fNuclearPotential = 45.0;
fTimeScale = 1.0;
fMinNeutronEnergy = 0.0;
usingInverseKinematics = false;
};
G4InclInput(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus, G4bool inverseKinematics);
~G4InclInput();
void printInfo();
static void printProjectileTargetInfo(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus);
static G4bool canUseInverseKinematics(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus);
G4double bulletE() {
return fBulletE;
}
G4int getClusterOption() { return 0; }; // No clusters (and in 4.2 there never will be!)
G4int bulletType() {
return fBulletType;
};
void setExtendedProjectileInfo(const G4ParticleDefinition *pd);
G4int getBulletType(const G4ParticleDefinition *pd);
static G4ParticleDefinition* getParticleDefinition(G4int inclParticleCode);
G4bool isInverseKinematics() {
return usingInverseKinematics;
};
G4int targetA() { return fTargetA; };
G4int targetZ() { return fTargetZ; };
G4int extendedProjectileA() { return theExtendedProjectileA; };
G4int extendedProjectileZ() { return theExtendedProjectileZ; };
G4bool isExtendedProjectile() { return isExtended; };
void isExtendedProjectile(G4bool ext) { isExtended = ext; };
G4double getPotential() { return fNuclearPotential; };
G4int getBreakupThreshold() { return breakupThreshold; };
G4double getTimeScale() { return fTimeScale; };
private:
G4int theExtendedProjectileA;
G4int theExtendedProjectileZ;
G4bool isExtended;
G4int breakupThreshold;
/**
* Here f is an array containing the following initial values:
* - f[0] : target mass number
* - f[1] : target charge number
*/
G4int fTargetA, fTargetZ;
/*
* - f[2] : bullet energy
*/
G4double fBulletE;
/*
* - f[3] : minimum proton energy to leave the target (default: 0.0)
*/
G4double fMinProtonE;
/*
* - f[4] : nuclear potential (default: 45.0 MeV)
*/
G4double fNuclearPotential;
/*
* - f[5] : time scale (default: 1.0)
*/
G4double fTimeScale;
/*
* - f[6] : bullet type (1: proton, 2: neutron, 3: pi+, 4: pi0 5: pi-, 6:H2, 7: H3, 8: He3, 9: He4
*/
G4int fBulletType;
/*
* - f[7] : minimum neutron energy to leave the target (default: 0.0)
*/
G4double fMinNeutronEnergy;
/*
* - f[8] : target material identifier (G4Mat)
* - f[9] : not used
* - f[10] : not used
* - f[11] : not used
* - f[12] : not used
* - f[13] : not used
* - f[14] : not used
*/
// G4double f[FSIZE];
/**
* Number of events to be processed.
*/
G4int icoup;
G4bool usingInverseKinematics;
};
#endif