Import Geant4 10.6.0 source tree
This commit is contained in:
@@ -75,6 +75,11 @@ private:
|
||||
|
||||
G4ParticleDefinition* theNeutrinoE;
|
||||
G4ParticleDefinition* theAntiNeutrinoE;
|
||||
G4ParticleDefinition* theNeutrinoMu;
|
||||
G4ParticleDefinition* theAntiNeutrinoMu;
|
||||
G4ParticleDefinition* theNeutrinoTau;
|
||||
G4ParticleDefinition* theAntiNeutrinoTau;
|
||||
|
||||
G4ParticleDefinition* theMuonMinus;
|
||||
G4ParticleDefinition* theTauMinus;
|
||||
|
||||
|
||||
@@ -46,11 +46,8 @@
|
||||
#include "G4NucleiProperties.hh"
|
||||
#include "G4LorentzVector.hh"
|
||||
|
||||
using namespace std;
|
||||
using namespace CLHEP;
|
||||
|
||||
class G4ParticleDefinition;
|
||||
// class G4VPreCompoundModel;
|
||||
class G4PreCompoundModel;
|
||||
// class G4CascadeInterface;
|
||||
// class G4BinaryCascade;
|
||||
// class G4TheoFSGenerator;
|
||||
@@ -58,6 +55,9 @@ class G4ParticleDefinition;
|
||||
// class G4ExcitedStringDecay;
|
||||
// class G4INCLXXInterface;
|
||||
class G4Nucleus;
|
||||
class G4Fragment;
|
||||
class G4GeneratorPrecompoundInterface;
|
||||
class G4ExcitationHandler;
|
||||
|
||||
class G4NeutrinoNucleusModel : public G4HadronicInteraction
|
||||
{
|
||||
@@ -73,18 +73,7 @@ public:
|
||||
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack,
|
||||
G4Nucleus & targetNucleus)=0;
|
||||
|
||||
|
||||
////////// KR excitation kinematics ////////////////////
|
||||
/*
|
||||
void SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus & targetNucleus);
|
||||
|
||||
G4double SampleXkr(G4double energy);
|
||||
G4double GetXkr(G4int iEnergy, G4double prob);
|
||||
G4double SampleQkr(G4double energy, G4double xx);
|
||||
G4double GetQkr(G4int iE, G4int jX, G4double prob);
|
||||
|
||||
*/
|
||||
//////// fragmentation functions /////////////////////////
|
||||
//////// fragmentation functions /////////////////////////
|
||||
|
||||
void ClusterDecay( G4LorentzVector & lvX, G4int qX);
|
||||
|
||||
@@ -92,6 +81,8 @@ public:
|
||||
|
||||
void FinalBarion( G4LorentzVector & lvB, G4int qB, G4int pdgB);
|
||||
|
||||
void RecoilDeexcitation( G4Fragment& fragment);
|
||||
|
||||
void FinalMeson( G4LorentzVector & lvM, G4int qM, G4int pdgM);
|
||||
|
||||
void CoherentPion( G4LorentzVector & lvP, G4int pdgP, G4Nucleus & targetNucleus);
|
||||
@@ -126,11 +117,11 @@ public:
|
||||
G4LorentzVector GetLVt(){return fLVt;};
|
||||
G4LorentzVector GetLVcpi(){return fLVcpi;};
|
||||
|
||||
G4double GetMinNuMuEnergy(){ return fMu + 0.5*fMu*fMu/fM1 + 4.*MeV; }; // kinematics + accuracy for sqrts
|
||||
G4double GetMinNuMuEnergy(){ return fMu + 0.5*fMu*fMu/fM1 + 4.*CLHEP::MeV; }; // kinematics + accuracy for sqrts
|
||||
|
||||
G4double ThresholdEnergy(G4double mI, G4double mF, G4double mP) // for cluster decay
|
||||
{
|
||||
G4double w = sqrt(fW2);
|
||||
G4double w = std::sqrt(fW2);
|
||||
return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w+mI) )/mI;
|
||||
};
|
||||
G4double FinalMomentum(G4double mI, G4double mF, G4double mP, G4LorentzVector lvX); // for cluster decay
|
||||
@@ -139,7 +130,10 @@ public:
|
||||
|
||||
G4double FermiMomentum( G4Nucleus & targetNucleus);
|
||||
G4double NucleonMomentum( G4Nucleus & targetNucleus);
|
||||
|
||||
|
||||
G4double GetEx( G4int A, G4bool fP );
|
||||
G4double GgSampleNM(G4Nucleus & nucl);
|
||||
|
||||
G4int GetEnergyIndex(G4double energy);
|
||||
G4double GetNuMuQeTotRat(G4int index, G4double energy);
|
||||
|
||||
@@ -150,13 +144,13 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
// G4ParticleDefinition* theMuonMinus;
|
||||
// G4ParticleDefinition* theMuonPlus;
|
||||
G4ParticleDefinition* theMuonMinus;
|
||||
G4ParticleDefinition* theMuonPlus;
|
||||
|
||||
G4double fSin2tW; // sin^2theta_Weinberg
|
||||
G4double fCutEnergy; // minimal recoil electron energy detected
|
||||
|
||||
G4int fNbin, fIndex, fEindex, fXindex, fOnePionIndex, fPDGencoding;
|
||||
G4int fNbin, fIndex, fEindex, fXindex, fQindex, fOnePionIndex, fPDGencoding;
|
||||
G4bool fCascade, fString, fProton, f2p2h, fBreak;
|
||||
|
||||
G4double fNuEnergy, fQ2, fQtransfer, fXsample;
|
||||
@@ -166,19 +160,12 @@ protected:
|
||||
G4double fEmu, fEmuPi, fEx, fMr, fCosTheta, fCosThetaPi; // final lepton
|
||||
|
||||
G4LorentzVector fLVh, fLVl, fLVt, fLVcpi;
|
||||
/*
|
||||
G4VPreCompoundModel* fPrecoModel;
|
||||
|
||||
G4TheoFSGenerator* theFTFP;
|
||||
G4TheoFSGenerator* theQGSP;
|
||||
G4GeneratorPrecompoundInterface* fPrecoInterface;
|
||||
G4PreCompoundModel* fPreCompound;
|
||||
G4ExcitationHandler* fDeExcitation;
|
||||
|
||||
G4LundStringFragmentation* theFragmentation;
|
||||
G4ExcitedStringDecay* theStringDecay;
|
||||
|
||||
G4CascadeInterface* theBertini;
|
||||
// G4BinaryCascade* theBinary;
|
||||
// G4INCLXXInterface* theINCLXX;
|
||||
*/
|
||||
G4Nucleus* fRecoil;
|
||||
|
||||
static const G4int fResNumber;
|
||||
|
||||
@@ -47,18 +47,10 @@
|
||||
#include "G4LorentzVector.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
using namespace std;
|
||||
using namespace CLHEP;
|
||||
|
||||
class G4ParticleDefinition;
|
||||
class G4VPreCompoundModel;
|
||||
class G4CascadeInterface;
|
||||
class G4BinaryCascade;
|
||||
class G4TheoFSGenerator;
|
||||
class G4LundStringFragmentation;
|
||||
class G4ExcitedStringDecay;
|
||||
class G4INCLXXInterface;
|
||||
class G4PreCompoundModel;
|
||||
class G4Nucleus;
|
||||
class G4Fragment;
|
||||
|
||||
class G4NuMuNucleusCcModel : public G4NeutrinoNucleusModel // G4HadronicInteraction
|
||||
{
|
||||
@@ -86,104 +78,18 @@ public:
|
||||
G4double SampleQkr(G4double energy, G4double xx);
|
||||
G4double GetQkr(G4int iE, G4int jX, G4double prob);
|
||||
|
||||
|
||||
//////// fragmentation functions /////////////////////////
|
||||
|
||||
void ClusterDecay( G4LorentzVector & lvX, G4int qX);
|
||||
|
||||
void MesonDecay( G4LorentzVector & lvX, G4int qX);
|
||||
|
||||
void FinalBarion( G4LorentzVector & lvB, G4int qB, G4int pdgB);
|
||||
|
||||
void FinalMeson( G4LorentzVector & lvM, G4int qM, G4int pdgM);
|
||||
|
||||
void CoherentPion( G4LorentzVector & lvP, G4int pdgP, G4Nucleus & targetNucleus);
|
||||
|
||||
/*
|
||||
// set/get class fields
|
||||
|
||||
void SetCutEnergy(G4double ec){fCutEnergy=ec;};
|
||||
G4double GetCutEnergy(){return fCutEnergy;};
|
||||
|
||||
G4double GetNuEnergy(){return fNuEnergy;};
|
||||
G4double GetQtransfer(){return fQtransfer;};
|
||||
G4double GetQ2(){return fQ2;};
|
||||
G4double GetXsample(){return fXsample;};
|
||||
|
||||
G4int GetPDGencoding(){return fPDGencoding;};
|
||||
G4bool GetCascade(){return fCascade;};
|
||||
G4bool GetString(){return fString;};
|
||||
|
||||
G4double GetCosTheta(){return fCosTheta;};
|
||||
G4double GetEmu(){return fEmu;};
|
||||
G4double GetEx(){return fEx;};
|
||||
G4double GetMuMass(){return fMu;};
|
||||
G4double GetW2(){return fW2;};
|
||||
G4double GetM1(){return fM1;};
|
||||
G4double GetMr(){return fMr;};
|
||||
G4double GetTr(){return fTr;};
|
||||
G4double GetDp(){return fDp;};
|
||||
|
||||
G4LorentzVector GetLVl(){return fLVl;};
|
||||
G4LorentzVector GetLVh(){return fLVh;};
|
||||
G4LorentzVector GetLVt(){return fLVt;};
|
||||
G4LorentzVector GetLVcpi(){return fLVcpi;};
|
||||
*/
|
||||
G4double GetMinNuMuEnergy(){ return fMu + 0.5*fMu*fMu/fM1 + 4.*MeV; }; // kinematics + accuracy for sqrts
|
||||
|
||||
G4double GetMinNuMuEnergy(){ return fMu + 0.5*fMu*fMu/fM1 + 4.*CLHEP::MeV; }; // kinematics + accuracy for sqrts
|
||||
|
||||
G4double ThresholdEnergy(G4double mI, G4double mF, G4double mP) // for cluster decay
|
||||
{
|
||||
G4double w = sqrt(fW2);
|
||||
G4double w = std::sqrt(fW2);
|
||||
return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w+mI) )/mI;
|
||||
};
|
||||
G4double FinalMomentum(G4double mI, G4double mF, G4double mP, G4LorentzVector lvX); // for cluster decay
|
||||
|
||||
// nucleon binding
|
||||
|
||||
// G4double FermiMomentum( G4Nucleus & targetNucleus);
|
||||
// G4double NucleonMomentum( G4Nucleus & targetNucleus);
|
||||
|
||||
G4int GetEnergyIndex(G4double energy);
|
||||
G4double GetNuMuQeTotRat(G4int index, G4double energy);
|
||||
|
||||
G4int GetOnePionIndex(G4double energy);
|
||||
G4double GetNuMuOnePionProb(G4int index, G4double energy);
|
||||
|
||||
|
||||
virtual void ModelDescription(std::ostream&) const;
|
||||
|
||||
private:
|
||||
|
||||
G4ParticleDefinition* theMuonMinus;
|
||||
G4ParticleDefinition* theMuonPlus;
|
||||
|
||||
G4double fSin2tW; // sin^2theta_Weinberg
|
||||
G4double fCutEnergy; // minimal recoil electron energy detected
|
||||
|
||||
G4int fNbin, fIndex, fEindex, fXindex, fOnePionIndex, fPDGencoding;
|
||||
G4bool fCascade, fString, fProton, f2p2h, fBreak;
|
||||
|
||||
G4double fNuEnergy, fQ2, fQtransfer, fXsample;
|
||||
|
||||
G4double fM1, fM2, fMt, fMu, fW2, fMpi, fW2pi, fMinNuEnergy, fDp, fTr;
|
||||
|
||||
G4double fEmu, fEmuPi, fEx, fMr, fCosTheta, fCosThetaPi; // final lepton
|
||||
|
||||
G4LorentzVector fLVh, fLVl, fLVt, fLVcpi;
|
||||
/*
|
||||
G4VPreCompoundModel* fPrecoModel;
|
||||
|
||||
G4TheoFSGenerator* theFTFP;
|
||||
G4TheoFSGenerator* theQGSP;
|
||||
|
||||
G4LundStringFragmentation* theFragmentation;
|
||||
G4ExcitedStringDecay* theStringDecay;
|
||||
|
||||
G4CascadeInterface* theBertini;
|
||||
G4BinaryCascade* theBinary;
|
||||
G4INCLXXInterface* theINCLXX;
|
||||
|
||||
G4Nucleus* fRecoil;
|
||||
*/
|
||||
static const G4int fResNumber;
|
||||
static const G4double fResMass[6]; // [fResNumber];
|
||||
|
||||
@@ -208,11 +114,6 @@ private:
|
||||
static const G4double fNuMuResQ[50][50];
|
||||
|
||||
|
||||
static const G4double fNuMuEnergy[50];
|
||||
static const G4double fNuMuQeTotRat[50];
|
||||
static const G4double fOnePionEnergy[58];
|
||||
static const G4double fOnePionProb[58];
|
||||
|
||||
G4bool fData, fMaster; // for one initialisation only
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
|
||||
@@ -40,16 +40,13 @@
|
||||
#define G4NuMuNucleusNcModel_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4NeutrinoNucleusModel.hh"
|
||||
#include "G4HadProjectile.hh"
|
||||
#include "G4Nucleus.hh"
|
||||
#include "G4NucleiProperties.hh"
|
||||
#include "G4LorentzVector.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
using namespace std;
|
||||
using namespace CLHEP;
|
||||
|
||||
class G4ParticleDefinition;
|
||||
class G4VPreCompoundModel;
|
||||
class G4CascadeInterface;
|
||||
@@ -60,7 +57,7 @@ class G4ExcitedStringDecay;
|
||||
class G4INCLXXInterface;
|
||||
class G4Nucleus;
|
||||
|
||||
class G4NuMuNucleusNcModel : public G4HadronicInteraction
|
||||
class G4NuMuNucleusNcModel : public G4NeutrinoNucleusModel
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -86,103 +83,23 @@ public:
|
||||
G4double SampleQkr(G4double energy, G4double xx);
|
||||
G4double GetQkr(G4int iE, G4int jX, G4double prob);
|
||||
|
||||
|
||||
//////// fragmentation functions /////////////////////////
|
||||
|
||||
void ClusterDecay( G4LorentzVector & lvX, G4int qX);
|
||||
|
||||
void MesonDecay( G4LorentzVector & lvX, G4int qX);
|
||||
|
||||
void FinalBarion( G4LorentzVector & lvB, G4int qB, G4int pdgB);
|
||||
|
||||
void FinalMeson( G4LorentzVector & lvM, G4int qM, G4int pdgM);
|
||||
|
||||
void CoherentPion( G4LorentzVector & lvP, G4int pdgP, G4Nucleus & targetNucleus);
|
||||
|
||||
|
||||
// set/get class fields
|
||||
|
||||
void SetCutEnergy(G4double ec){fCutEnergy=ec;};
|
||||
G4double GetCutEnergy(){return fCutEnergy;};
|
||||
|
||||
G4double GetNuEnergy(){return fNuEnergy;};
|
||||
G4double GetQtransfer(){return fQtransfer;};
|
||||
G4double GetQ2(){return fQ2;};
|
||||
G4double GetXsample(){return fXsample;};
|
||||
|
||||
G4int GetPDGencoding(){return fPDGencoding;};
|
||||
G4bool GetCascade(){return fCascade;};
|
||||
G4bool GetString(){return fString;};
|
||||
|
||||
G4double GetCosTheta(){return fCosTheta;};
|
||||
G4double GetEmu(){return fEmu;};
|
||||
G4double GetEx(){return fEx;};
|
||||
G4double GetNuMuMass(){return fMnumu;};
|
||||
G4double GetW2(){return fW2;};
|
||||
G4double GetM1(){return fM1;};
|
||||
G4double GetMr(){return fMr;};
|
||||
G4double GetTr(){return fTr;};
|
||||
G4double GetDp(){return fDp;};
|
||||
|
||||
G4LorentzVector GetLVl(){return fLVl;};
|
||||
G4LorentzVector GetLVh(){return fLVh;};
|
||||
G4LorentzVector GetLVt(){return fLVt;};
|
||||
G4LorentzVector GetLVcpi(){return fLVcpi;};
|
||||
|
||||
G4double GetMinNuMuEnergy(){ return fMnumu + 0.5*fMnumu*fMnumu/fM1 + 4.*keV; }; // kinematics + accuracy for sqrts
|
||||
G4double GetMinNuMuEnergy(){ return fMnumu + 0.5*fMnumu*fMnumu/fM1 + 4.*CLHEP::keV; }; // kinematics + accuracy for sqrts
|
||||
|
||||
G4double ThresholdEnergy(G4double mI, G4double mF, G4double mP) // for cluster decay
|
||||
{
|
||||
G4double w = sqrt(fW2);
|
||||
G4double w = std::sqrt(fW2);
|
||||
return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w+mI) )/mI;
|
||||
};
|
||||
G4double FinalMomentum(G4double mI, G4double mF, G4double mP, G4LorentzVector lvX); // for cluster decay
|
||||
|
||||
// nucleon binding
|
||||
|
||||
G4double FermiMomentum( G4Nucleus & targetNucleus);
|
||||
G4double NucleonMomentum( G4Nucleus & targetNucleus);
|
||||
|
||||
G4int GetEnergyIndex(G4double energy);
|
||||
G4double GetNuMuQeTotRat(G4int index, G4double energy);
|
||||
|
||||
G4int GetOnePionIndex(G4double energy);
|
||||
G4double GetNuMuOnePionProb(G4int index, G4double energy);
|
||||
|
||||
|
||||
virtual void ModelDescription(std::ostream&) const;
|
||||
|
||||
private:
|
||||
|
||||
G4ParticleDefinition* theNuMu;
|
||||
G4ParticleDefinition* theANuMu;
|
||||
|
||||
G4double fSin2tW; // sin^2theta_Weinberg
|
||||
G4double fCutEnergy; // minimal recoil electron energy detected
|
||||
|
||||
G4int fNbin, fIndex, fEindex, fXindex, fOnePionIndex, fPDGencoding;
|
||||
G4bool fCascade, fString, fProton, f2p2h, fBreak;
|
||||
G4double fMnumu; // = 0 for <f|-state
|
||||
|
||||
G4double fNuEnergy, fQ2, fQtransfer, fXsample;
|
||||
|
||||
G4double fM1, fM2, fMt, fMnumu, fW2, fMpi, fW2pi, fMinNuEnergy, fDp, fTr;
|
||||
|
||||
G4double fEmu, fEmuPi, fEx, fMr, fCosTheta, fCosThetaPi; // final lepton
|
||||
|
||||
G4LorentzVector fLVh, fLVl, fLVt, fLVcpi;
|
||||
/*
|
||||
G4VPreCompoundModel* fPrecoModel;
|
||||
|
||||
G4TheoFSGenerator* theFTFP;
|
||||
G4TheoFSGenerator* theQGSP;
|
||||
|
||||
G4LundStringFragmentation* theFragmentation;
|
||||
G4ExcitedStringDecay* theStringDecay;
|
||||
|
||||
G4CascadeInterface* theBertini;
|
||||
G4BinaryCascade* theBinary;
|
||||
G4INCLXXInterface* theINCLXX;
|
||||
*/
|
||||
G4Nucleus* fRecoil;
|
||||
|
||||
static const G4int fResNumber;
|
||||
static const G4double fResMass[6]; // [fResNumber];
|
||||
@@ -207,12 +124,7 @@ private:
|
||||
|
||||
static const G4double fNuMuResQ[50][50];
|
||||
|
||||
|
||||
static const G4double fNuMuEnergy[50];
|
||||
static const G4double fNuMuQeTotRat[50];
|
||||
static const G4double fOnePionEnergy[58];
|
||||
static const G4double fOnePionProb[58];
|
||||
|
||||
|
||||
G4bool fData, fMaster; // for one initialisation only
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
|
||||
Reference in New Issue
Block a user