34#define INCLXX_IN_GEANT4_MODE 1
49 const G4double NpiToMissingStrangenessChannel::angularSlope = 1.;
52 : particle1(p1), particle2(p2)
65 G4int available_iso = 0;
74 pion_initial = particle1;
75 nucleon_initial = particle2;
78 pion_initial = particle2;
79 nucleon_initial = particle1;
92 else if((iso == 0 && rdm < 0.55) || rdm < 0.5){
106 nbr_pions = std::min(max_pions,std::max(min_pions,
G4int(intermediaire )));
108 available_iso += nbr_pions*2;
124 G4bool pip_p = (std::abs(iso) == 3);
128 G4bool pim_p = (!pip_p && !piz_p);
130 for(
Int_t i=0; i<nbr_pions; i++){
132 if(available_iso-std::abs(iso-iso_system) >= 4){
134 if((pip_p && rdm < 0.54) || (piz_p && rdm < 0.32) || (pim_p && rdm < 0.45)){
139 else if((pip_p && rdm < 0.80) || (piz_p && rdm < 0.77) || (pim_p && rdm < 0.82)){
149 else if(available_iso-std::abs(iso-iso_system) == 2){
163 else if(available_iso-std::abs(iso-iso_system) == 0){
168 else INCL_ERROR(
"Pion Generation Problem in NpiToMissingStrangenessChannel" <<
'\n');
169 list.push_back(pion);
176 else if(min_pions == 1){
179 if(std::abs(iso-iso_system) == 3){
184 else if(std::abs(iso-iso_system) == 1){
190 else INCL_ERROR(
"Isospin non-conservation in NNToMissingStrangenessChannel" <<
'\n');
191 list.push_back(antikaon);
196 if(std::abs(iso-iso_system) == 3){
200 else if(std::abs(iso-iso_system) == 1){
202 if((pip_p && rdm < 0.73) || (piz_p && rdm < 0.32) || (pim_p && rdm < 0.45)){
211 else INCL_ERROR(
"Isospin non-conservation in NNToMissingStrangenessChannel" <<
'\n');
214 list.push_back(pion_initial);
215 list.push_back(nucleon_initial);
void addModifiedParticle(Particle *p)
void addCreatedParticle(Particle *p)
void fillFinalState(FinalState *fs)
virtual ~NpiToMissingStrangenessChannel()
NpiToMissingStrangenessChannel(Particle *, Particle *)
G4bool isLambda() const
Is this a Lambda?
void setParentResonancePDGCode(const G4int parentPDGCode)
const G4INCL::ThreeVector & getPosition() const
void setParentResonanceID(const G4int parentID)
G4bool isPion() const
Is this a pion?
G4INCL::ParticleType getType() const
void setType(ParticleType t)
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4double momentumInLab(Particle const *const p1, Particle const *const p2)
gives the momentum in the lab frame of two particles.
ParticleType getKaonType(const G4int isosp)
Get the type of kaon.
ParticleType getSigmaType(const G4int isosp)
Get the type of sigma.
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2)
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
ParticleType getNucleonType(const G4int isosp)
Get the type of nucleon.
ParticleType getPionType(const G4int isosp)
Get the type of pion.
ParticleType getAntiKaonType(const G4int isosp)
Get the type of antikaon.
void generateBiased(const G4double sqrtS, ParticleList &particles, const size_t index, const G4double slope)
Generate a biased event in the CM system.
G4double gauss(G4double sigma=1.)