Belle II Software  release-05-01-25
G4mplIonisation.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Dmitrii Neverov *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 // modified from GEANT4 exoticphysics/monopole/*
12 
13 #pragma once
14 
15 #include <G4VEnergyLossProcess.hh>
16 #include <globals.hh>
17 
18 class G4Material;
19 
20 namespace Belle2 {
26  namespace Monopoles {
27 
34  class G4mplIonisation : public G4VEnergyLossProcess {
35 
36  public:
37 
43  explicit G4mplIonisation(G4double mCharge = 0.0,
44  const G4String& name = "mplIoni");
45 
49  virtual ~G4mplIonisation();
50 
56  virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
57 
61  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
62  const G4Material*, G4double cut) final;
63 
67  virtual void PrintInfo() override;
68 
69  protected:
70 
77  virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition* p,
78  const G4ParticleDefinition*) override;
79 
80  private:
81 
86  G4mplIonisation& operator=(const G4mplIonisation& right) = delete;
91  G4mplIonisation(const G4mplIonisation& copy) = delete;
92 
93  G4double magneticCharge;
94  G4bool isInitialised;
96  };
97 
98  } //end Monopoles namespace
99 
101 } //end Belle2 namespace
Belle2::Monopoles::G4mplIonisation::InitialiseEnergyLossProcess
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *p, const G4ParticleDefinition *) override
G4VEnergyLossProcess::InitialiseEnergyLossProcess() implementation.
Definition: G4mplIonisation.cc:60
Belle2::Monopoles::G4mplIonisation
Monopole ionisation class.
Definition: G4mplIonisation.h:34
Belle2::Monopoles::G4mplIonisation::magneticCharge
G4double magneticCharge
Monopole charge, in e+ units.
Definition: G4mplIonisation.h:93
Belle2::Monopoles::G4mplIonisation::PrintInfo
virtual void PrintInfo() override
Print out of the class parameters.
Definition: G4mplIonisation.cc:91
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Monopoles::G4mplIonisation::isInitialised
G4bool isInitialised
Is the process initialised.
Definition: G4mplIonisation.h:94
Belle2::Monopoles::G4mplIonisation::~G4mplIonisation
virtual ~G4mplIonisation()
Destructor.
Definition: G4mplIonisation.cc:41
Belle2::Monopoles::G4mplIonisation::MinPrimaryEnergy
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
Threshold for zero value.
Definition: G4mplIonisation.cc:49
Belle2::Monopoles::G4mplIonisation::operator=
G4mplIonisation & operator=(const G4mplIonisation &right)=delete
Assignment operator should be hidden.
Belle2::Monopoles::G4mplIonisation::IsApplicable
virtual G4bool IsApplicable(const G4ParticleDefinition &p) override
Dummy to check if the proccess is is applicable to a certain particle.
Definition: G4mplIonisation.cc:44
Belle2::Monopoles::G4mplIonisation::G4mplIonisation
G4mplIonisation(G4double mCharge=0.0, const G4String &name="mplIoni")
Constructor.
Definition: G4mplIonisation.cc:27