CMS 3D CMS Logo

CMSmplIonisation.h
Go to the documentation of this file.
1 //
2 // -------------------------------------------------------------------
3 //
4 // GEANT4 Class header file
5 //
6 //
7 // File name: CMSmplIonisation
8 //
9 // Author: Vladimir Ivanchenko copied from Geant4 10.5p01
10 //
11 // Creation date: 02.03.2019
12 //
13 // Class Description:
14 //
15 // This class manages the ionisation process for a magnetic monopole
16 // it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess.
17 // Magnetic charge of the monopole should be defined in the constructor of
18 // the process, unless it is assumed that it is classic Dirac monopole with
19 // the charge 67.5*eplus. The name of the particle should be "monopole".
20 //
21 
22 // -------------------------------------------------------------------
23 //
24 
25 #ifndef CMSmplIonisation_h
26 #define CMSmplIonisation_h 1
27 
28 #include "G4VEnergyLossProcess.hh"
29 #include "globals.hh"
30 #include "G4VEmModel.hh"
31 
32 class G4Material;
33 class G4VEmFluctuationModel;
34 
35 class CMSmplIonisation : public G4VEnergyLossProcess
36 {
37 
38 public:
39 
40  explicit CMSmplIonisation(G4double mCharge = 0.0,
41  const G4String& name = "mplIoni");
42 
43  ~CMSmplIonisation() override;
44 
45  G4bool IsApplicable(const G4ParticleDefinition& p) override;
46 
47  G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
48  const G4Material*, G4double cut) final;
49 
50  // Print out of the class parameters
51  void PrintInfo() override;
52 
53  // print description in html
54  void ProcessDescription(std::ostream&) const override;
55 
56 protected:
57 
58  void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
59  const G4ParticleDefinition*) override;
60 
61 private:
62 
63  G4double magneticCharge;
64  G4bool isInitialised;
65 };
66 
67 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
68 
69 #endif
CMSmplIonisation(G4double mCharge=0.0, const G4String &name="mplIoni")
G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
void PrintInfo() override
void ProcessDescription(std::ostream &) const override
void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *) override
~CMSmplIonisation() override
G4bool IsApplicable(const G4ParticleDefinition &p) override