34#define INCLXX_IN_GEANT4_MODE 1
49 const G4double PionResonanceDecayChannel::angularSlope = 0.;
52 :theParticle(p), incidentDirection(dir)
82 if(std::abs(*ctet_par) > 1.0) (*ctet_par) =
Math::sign(*ctet_par);
83 (*stet_par) = std::sqrt(1.-(*ctet_par)*(*ctet_par));
96 switch (theParticle->
getType()) {
104 else if (drnd < 0.7265) {
110 else if (drnd < 0.9575) {
130 else if (drnd < 0.9845) {
144 INCL_FATAL(
"Unrecognized pion resonance type; type=" << theParticle->
getType() <<
'\n');
150 sampleAngles(&ctet, &stet, &fi);
159 sal = incidentDirection.
perp()/beta;
165 G4double t1 = ctet+cal*stet*sfi/sal;
167 q1=(b1*t1+b2*t2*cfi)/beta;
168 q2=(b2*t1-b1*t2*cfi)/beta;
169 q3=(b3*t1/beta-t2*sfi);
185 Particle *createdParticle =
new Particle(createdType, createdMomentum, createdPosition);
193 else if (nbpart == 3) {
196 list.push_back(theParticle);
201 list.push_back(Pion1);
202 list.push_back(Pion2);
void addModifiedParticle(Particle *p)
void addCreatedParticle(Particle *p)
G4double getEnergy() const
const G4INCL::ThreeVector & getPosition() const
G4double adjustEnergyFromMomentum()
Recompute the energy to match the momentum.
virtual void setMomentum(const G4INCL::ThreeVector &momentum)
G4INCL::ParticleType getType() const
void setType(ParticleType t)
G4double getMass() const
Get the cached particle mass.
static G4double computeDecayTime(Particle *p)
void fillFinalState(FinalState *fs)
virtual ~PionResonanceDecayChannel()
PionResonanceDecayChannel(Particle *, ThreeVector const &)
G4double momentumInCM(Particle const *const p1, Particle const *const p2)
gives the momentum in the CM frame of two particles.
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2)
void generate(const G4double sqrtS, ParticleList &particles)
Generate an event in the CM system.
const G4double hc
[MeV*fm]