G4ElementaryParticleCollider

public G4CascadeColliderBase

  void collide(G4InuclParticle* bullet, G4InuclParticle* target, G4CollisionOutput& output);

class

public:
  G4ElementaryParticleCollider();
  virtual ~G4ElementaryParticleCollider() {};

  void collide(G4InuclParticle* bullet, G4InuclParticle* target,
           G4CollisionOutput& output);

  void setNucleusState(G4int a, G4int z) {    // Nucleus to use for recoil
    nucleusA = a; nucleusZ = z;
  }

private:
  G4int generateMultiplicity(G4int is, G4double ekin) const;

  void generateOutgoingPartTypes(G4int is, G4int mult, G4double ekin);

  void generateSCMfinalState(G4double ekin, G4double etot_scm,
                 G4InuclElementaryParticle* particle1,
                 G4InuclElementaryParticle* particle2); 

  // Pion (or photon) absorption on a dibaryon
  void generateSCMpionAbsorption(G4double etot_scm,
                 G4InuclElementaryParticle* particle1,
                 G4InuclElementaryParticle* particle2); 

  // Muon absorption on a dibaryon (with outgoing neutrino)
  void generateSCMmuonAbsorption(G4double etot_scm,
                 G4InuclElementaryParticle* particle1,
                 G4InuclElementaryParticle* particle2); 

  // Pion absorption on a single nucleon (charge exchange)
  void generateSCMpionNAbsorption(G4double etot_scm,
                  G4InuclElementaryParticle* particle1,
                  G4InuclElementaryParticle* particle2); 

  G4bool pionNucleonAbsorption(G4double ekin) const;

  G4bool splitQuasiDeuteron(G4int qdtype);     // Fill kinds with NN components

  void fillOutgoingMasses();        // Fill mass arrays from particle types

  // Utility class to generate final-state kinematics
  G4CascadeFinalStateGenerator fsGenerator;

  // Internal buffers for lists of secondaries
  std::vector<G4InuclElementaryParticle> particles;
  std::vector<G4LorentzVector> scm_momentums;
  std::vector<G4double> modules;
  std::vector<G4double> masses;
  std::vector<G4double> masses2;
  std::vector<G4int> particle_kinds;

  // Nuclear environment (to do pion-nucleon absorption)
  G4int nucleusA, nucleusZ;

private:
  // Copying of modules is forbidden
  G4ElementaryParticleCollider(const G4ElementaryParticleCollider&);
  G4ElementaryParticleCollider& operator=(const G4ElementaryParticleCollider&);
© Hongyi Wu            updated: 2018-09-01 11:38:01

results matching ""

    No results matching ""