Belle II Software  release-06-00-14
G4mplIonisation.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 // modified from GEANT4 exoticphysics/monopole/*
10 
11 #pragma once
12 
13 #include <G4VEnergyLossProcess.hh>
14 #include <globals.hh>
15 
16 class G4Material;
17 
18 namespace Belle2 {
24  namespace Monopoles {
25 
32  class G4mplIonisation : public G4VEnergyLossProcess {
33 
34  public:
35 
41  explicit G4mplIonisation(G4double mCharge = 0.0,
42  const G4String& name = "mplIoni");
43 
47  virtual ~G4mplIonisation();
48 
54  virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
55 
59  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
60  const G4Material*, G4double cut) final;
61 
65  virtual void PrintInfo() override;
66 
67  protected:
68 
75  virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition* p,
76  const G4ParticleDefinition*) override;
77 
78  private:
79 
84  G4mplIonisation& operator=(const G4mplIonisation& right) = delete;
89  G4mplIonisation(const G4mplIonisation& copy) = delete;
90 
91  G4double magneticCharge;
92  G4bool isInitialised;
94  };
95 
96  } //end Monopoles namespace
97 
99 } //end Belle2 namespace
Monopole ionisation class.
G4mplIonisation & operator=(const G4mplIonisation &right)=delete
Assignment operator should be hidden.
G4mplIonisation(G4double mCharge=0.0, const G4String &name="mplIoni")
Constructor.
G4double magneticCharge
Monopole charge, in e+ units.
virtual ~G4mplIonisation()
Destructor.
G4mplIonisation(const G4mplIonisation &copy)=delete
Copy constructor should be hidden.
G4bool isInitialised
Is the process initialised.
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *p, const G4ParticleDefinition *) override
G4VEnergyLossProcess::InitialiseEnergyLossProcess() implementation.
virtual G4bool IsApplicable(const G4ParticleDefinition &p) override
Dummy to check if the proccess is is applicable to a certain particle.
virtual void PrintInfo() override
Print out of the class parameters.
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
Threshold for zero value.
Abstract base class for different kinds of events.