G4CascadeDeexciteBase

public G4VCascadeDeexcitation

Semi-concrete base class for de-excitation modules, analogous to G4CascadeColliderBase.

class

public:
  G4CascadeDeexciteBase(const char* name);
  virtual ~G4CascadeDeexciteBase();

  virtual void setVerboseLevel(G4int verbose=0);

protected:
  // Decide whether to use G4BigBanger or not
  virtual G4bool explosion(const G4Fragment& target) const;
  virtual G4bool explosion(G4int A, G4int Z, G4double excitation) const;

protected:
  G4CascadeCheckBalance* balance;    // For conservation checking

  // ==> Provide interfaces to G4CascadeCheckBalance
  virtual G4bool validateOutput(const G4Fragment& target,
                G4CollisionOutput& output);

  // This is for use with G4BigBanger
  virtual G4bool validateOutput(const G4Fragment& target,
        const std::vector<G4InuclElementaryParticle>& particles);

  // This is for use with G4Fissioner
  virtual G4bool validateOutput(const G4Fragment& target,
                const std::vector<G4InuclNuclei>& fragments);

  // Interfaces between local content and G4Fragment
  void getTargetData(const G4Fragment& target);
  G4int A;        // Buffers to collect target data for all modules
  G4int Z;
  G4LorentzVector PEX;    // Four momentum of recoil in Bertini units (GeV)
  G4double EEXS;    // Excitation energy in MeV

  // NOTE:  Momentum passed by value so that energy/mass can be adjusted
  const G4Fragment& makeFragment(G4LorentzVector mom, G4int A, G4int Z,
                 G4double EX=0.);
  const G4Fragment& makeFragment(G4int A, G4int Z, G4double EX=0.);
  G4Fragment aFragment;    // Reusable buffer to reduce new/delete cycling

private:
  // Copying of modules is forbidden
  G4CascadeDeexciteBase(const G4CascadeDeexciteBase&);
  G4CascadeDeexciteBase& operator=(const G4CascadeDeexciteBase&);
© Hongyi Wu            updated: 2018-09-01 12:13:55

results matching ""

    No results matching ""