00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef BDSUserSpecialCuts_h
00028 #define BDSUserSpecialCuts_h 1
00029
00030 #include "G4ios.hh"
00031 #include "globals.hh"
00032 #include "G4VProcess.hh"
00033
00034
00035
00036
00037 class BDSUserSpecialCuts : public G4VProcess
00038 {
00039 public:
00040
00041 BDSUserSpecialCuts(const G4String& processName ="UserSpecialCut" );
00042
00043 ~BDSUserSpecialCuts();
00044
00045 virtual G4double PostStepGetPhysicalInteractionLength(
00046 const G4Track& track,
00047 G4double previousStepSize,
00048 G4ForceCondition* condition
00049 );
00050
00051 virtual G4VParticleChange* PostStepDoIt(
00052 const G4Track& ,
00053 const G4Step&
00054 );
00055
00056 public:
00057
00058
00059 virtual G4double AtRestGetPhysicalInteractionLength(
00060 const G4Track& ,
00061 G4ForceCondition*
00062 ){ return -1.0; };
00063
00064
00065 virtual G4VParticleChange* AtRestDoIt(
00066 const G4Track& ,
00067 const G4Step&
00068 ){return NULL;};
00069
00070
00071 virtual G4double AlongStepGetPhysicalInteractionLength(
00072 const G4Track&,
00073 G4double ,
00074 G4double ,
00075 G4double& ,
00076 G4GPILSelection*
00077 ){ return -1.0; };
00078
00079
00080 virtual G4VParticleChange* AlongStepDoIt(
00081 const G4Track& ,
00082 const G4Step&
00083 ) {return NULL;};
00084
00085 private:
00086
00087
00088 BDSUserSpecialCuts(BDSUserSpecialCuts&);
00089 BDSUserSpecialCuts& operator=(const BDSUserSpecialCuts& right);
00090
00091 };
00092
00093 #endif
00094