44 #ifndef CEXMC_CHARGE_EXCHANGE_PRODUCTION_MODEL_HH    45 #define CEXMC_CHARGE_EXCHANGE_PRODUCTION_MODEL_HH    59 template  < 
typename  OutputParticle >
    79 template  < 
typename  OutputParticle >
   112 #ifdef CEXMC_USE_GENBOD   122 template  < 
typename  OutputParticle >
   130 template  < 
typename  OutputParticle >
   141                                     const_cast< const G4LorentzRotation & >(
   142                                             theProjectile.GetTrafoToLab() ) );
   155                             std::sqrt( targetNucleusMomentum.mag2() +
   158                                 targetNucleusMomentum, targetNucleusEnergy );
   187         for ( CexmcAngularRangeList::iterator  k( 
angularRanges.begin() );
   190             if ( cosTheta <= k->top && cosTheta > k->bottom )
   192                                                 k->top, k->bottom, k->index ) );
 const G4String CexmcChargeExchangeInteractionName("Cexmc"+CexmcChargeExchangeProductionModelName)
 
G4LorentzVector nucleusOutputParticleLAB
 
std::vector< const G4LorentzVector *> CexmcPhaseSpaceInVector
 
const G4ParticleDefinition * nucleusParticle
 
G4ParticleDefinition * nucleusOutputParticle
 
std::vector< CexmcPhaseSpaceOutVectorElement > CexmcPhaseSpaceOutVector
 
const G4LorentzVector & Get4Momentum() const
 
const G4ParticleDefinition * incidentParticle
 
CexmcProductionModelData productionModelData
 
G4LorentzVector incidentParticleSCM
 
G4LorentzVector incidentParticleLAB
 
G4HadFinalState * ApplyYourself(const G4HadProjectile &projectile, G4Nucleus &targetNucleus)
 
G4LorentzVector outputParticleLAB
 
G4LorentzVector outputParticleSCM
 
const G4ParticleDefinition * outputParticle
 
G4LorentzVector nucleusParticleLAB
 
void SetStatusChange(G4HadFinalStateStatus aS)
 
static G4Proton * Definition()
 
G4LorentzVector nucleusOutputParticleSCM
 
~CexmcChargeExchangeProductionModel()
 
HepLorentzVector & boost(double, double, double)
 
G4ParticleDefinition * nucleusParticle
 
const G4ParticleDefinition * GetDefinition() const
 
void SetEnergyChange(G4double anEnergy)
 
G4ThreeVector GetFermiMomentum()
 
G4double GetKineticEnergy() const
 
G4ParticleDefinition * incidentParticle
 
G4double GetPDGMass() const
 
Hep3Vector boostVector() const
 
static G4PionMinus * Definition()
 
CexmcAngularRangeList angularRanges
 
static G4Neutron * Definition()
 
CexmcAngularRangeList triggeredAngularRanges
 
CexmcChargeExchangeProductionModel()
 
G4HadFinalState theParticleChange
 
HepLorentzVector & transform(const HepRotation &)
 
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
 
virtual G4bool CheckKinematics(void)
 
const G4ParticleDefinition * nucleusOutputParticle
 
void SetParticles(const CexmcPhaseSpaceInVector &inVec_, const CexmcPhaseSpaceOutVector &outVec_)
 
G4double nucleusParticleMass
 
CexmcPhaseSpaceGenerator * phaseSpaceGenerator
 
void SetMomentumChange(const G4ThreeVector &aV)
 
const G4String CexmcChargeExchangeProductionModelName("ChargeExchange")
 
virtual G4double Generate(void)=0
 
G4LorentzVector nucleusParticleSCM
 
G4ParticleDefinition * outputParticle
 
CLHEP::HepLorentzVector G4LorentzVector