34 #define INCLXX_IN_GEANT4_MODE 1
52 : particle1(p1), particle2(p2)
65 G4int available_iso = 0;
85 G4int nbr_particle = 2;
94 else if((iso == 0 && rdm < 0.55) || rdm < 0.5){
111 available_iso += nbr_pions*2;
112 nbr_particle += nbr_pions;
122 G4bool pip_p = (std::abs(iso) == 3);
126 G4bool pim_p = (!pip_p && !piz_p);
128 for(
Int_t i=0; i<nbr_pions; i++){
130 if(available_iso-std::abs(iso-iso_system) >= 4){
132 if((pip_p && rdm < 0.54) || (piz_p && rdm < 0.32) || (pim_p && rdm < 0.45)){
137 else if((pip_p && rdm < 0.80) || (piz_p && rdm < 0.77) || (pim_p && rdm < 0.82)){
147 else if(available_iso-std::abs(iso-iso_system) == 2){
161 else if(available_iso-std::abs(iso-iso_system) == 0){
166 else INCL_ERROR(
"Pion Generation Problem in NpiToMissingStrangenessChannel" <<
'\n');
167 list.push_back(pion);
174 else if(min_pions == 1){
177 if(std::abs(iso-iso_system) == 3){
182 else if(std::abs(iso-iso_system) == 1){
188 else INCL_ERROR(
"Isospin non-conservation in NNToMissingStrangenessChannel" <<
'\n');
189 list.push_back(antikaon);
194 if(std::abs(iso-iso_system) == 3){
198 else if(std::abs(iso-iso_system) == 1){
200 if((pip_p && rdm < 0.73) || (piz_p && rdm < 0.32) || (pim_p && rdm < 0.45)){
209 else INCL_ERROR(
"Isospin non-conservation in NNToMissingStrangenessChannel" <<
'\n');
212 list.push_back(pion_initial);
213 list.push_back(nucleon_initial);
void generateBiased(const G4double sqrtS, ParticleList &particles, const size_t index, const G4double slope)
Generate a biased event in the CM system.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
void addModifiedParticle(Particle *p)
const G4INCL::ThreeVector & getPosition() const
ParticleType getNucleonType(const G4int isosp)
Get the type of nucleon.
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
const G4INCL::ThreeVector & getMomentum() const
ParticleType getAntiKaonType(const G4int isosp)
Get the type of antikaon.
void fillFinalState(FinalState *fs)
G4bool isLambda() const
Is this a Lambda?
G4double getINCLMass(const G4int A, const G4int Z)
Get INCL nuclear mass (in MeV/c^2)
virtual ~NpiToMissingStrangenessChannel()
ParticleType getKaonType(const G4int isosp)
Get the type of kaon.
void setType(ParticleType t)
NpiToMissingStrangenessChannel(Particle *, Particle *)
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
G4INCL::ParticleType getType() const
static const G4double angularSlope
ParticleType getSigmaType(const G4int isosp)
Get the type of sigma.
G4bool isPion() const
Is this a pion?
G4double momentumInLab(Particle const *const p1, Particle const *const p2)
gives the momentum in the lab frame of two particles.
void addCreatedParticle(Particle *p)
G4double gauss(G4double sigma=1.)
ParticleType getPionType(const G4int isosp)
Get the type of pion.
T min(const T t1, const T t2)
brief Return the smallest of the two arguments