Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-13 08:21:05

0001 
0002 #ifndef G4HepEmNoProcess_h
0003 #define G4HepEmNoProcess_h 1
0004 
0005 #include "G4VProcess.hh"
0006 
0007 /**
0008  * @file    G4HepEmNoProcess.hh
0009  * @class   G4HepEmNoProcess
0010  * @author  M. Novak
0011  * @date    2021
0012  *
0013  * An empty G4VProcess with configurable name.
0014  *
0015  * This process should not be assigned to any particles since it's empty. It's
0016  * used only to provide infomation to the `Geant4` framework regarding the name
0017  * of the processes that determined the step.
0018  */
0019 
0020 class G4HepEmNoProcess : public G4VProcess {
0021   public:
0022 
0023     G4HepEmNoProcess(const G4String& name, G4ProcessType type, G4int subType=-1)
0024     : G4VProcess( name, type ) { SetProcessSubType(subType); }
0025 
0026    ~G4HepEmNoProcess() override {}
0027 
0028     // This process should not be set to any particle
0029     G4bool IsApplicable(const G4ParticleDefinition&) override { return false; }
0030 
0031     //  no operations in any GPIL or DoIt
0032     G4double PostStepGetPhysicalInteractionLength(
0033                              const G4Track&,
0034                              G4double,
0035                              G4ForceCondition*
0036                             ) override { return -1.0; }
0037 
0038     G4VParticleChange* PostStepDoIt(
0039                              const G4Track& ,
0040                              const G4Step&
0041                             ) override {return nullptr;}
0042 
0043     G4double AtRestGetPhysicalInteractionLength(
0044                              const G4Track& ,
0045                              G4ForceCondition*
0046                             ) override { return -1.0; }
0047 
0048     G4VParticleChange* AtRestDoIt(
0049                              const G4Track& ,
0050                              const G4Step&
0051                             ) override {return nullptr;}
0052 
0053     G4double AlongStepGetPhysicalInteractionLength(
0054                              const G4Track&,
0055                              G4double  ,
0056                              G4double  ,
0057                              G4double& ,
0058                              G4GPILSelection*
0059                             ) override { return -1.0; }
0060 
0061     G4VParticleChange* AlongStepDoIt(
0062                              const G4Track& ,
0063                              const G4Step&
0064                             ) override {return nullptr;}
0065 
0066     G4HepEmNoProcess(G4HepEmNoProcess&) = delete;
0067     G4HepEmNoProcess& operator=(const G4HepEmNoProcess& right) = delete;
0068 
0069 };
0070 
0071 #endif