Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

GLG4NeutronDiffusionAndCapture.hh

Go to the documentation of this file.
00001 #ifndef GLG4NeutronDiffusionAndCapture_h
00002 #define GLG4NeutronDiffusionAndCapture_h 1
00003 /** @file
00004     Declares GLG4NeutronDiffusionAndCapture class.
00005     
00006     This file is part of the GenericLAND software library.
00007     $Id: GLG4NeutronDiffusionAndCapture.hh,v 1.1.1.1 2004/12/21 22:29:48 GLG4sim Exp $
00008 
00009     @author Glenn Horton-Smith, 2000 (Tohoku, Caltech), 2004 (KSU).
00010 */
00011 
00012 
00013 #include "G4ios.hh"
00014 #include "globals.hh"
00015 #include "G4VProcess.hh"
00016 
00017 ////////////////////////////////////////////////////////////////
00018 
00019 class GLG4PrimaryGeneratorAction;
00020 class G4HadronCaptureProcess;
00021 
00022 /** Special process that applies simple neutron diffusion to
00023     epithermal neutrons, then calls neutron decay/capture processes
00024     "PostStepDoIt" to get decay/capture products.
00025     This process should be deactivated by default because it is unexpected
00026     to new users.
00027     @author Glenn Horton-Smith
00028 */
00029 class GLG4NeutronDiffusionAndCapture : public G4VProcess 
00030 {
00031  public:  //with description     
00032 
00033   GLG4NeutronDiffusionAndCapture(const G4String& processName="NeutronDiffusionAndCapture");
00034 
00035   ~GLG4NeutronDiffusionAndCapture();
00036 
00037   virtual G4double PostStepGetPhysicalInteractionLength(
00038                              const G4Track& track,
00039                              G4double   previousStepSize,
00040                              G4ForceCondition* condition
00041                             );
00042 
00043   virtual G4VParticleChange* PostStepDoIt(
00044                              const G4Track& ,
00045                              const G4Step& 
00046                             );
00047                             
00048  public:  //without description 
00049                             
00050      //  no operation in  AtRestGPIL
00051      virtual G4double AtRestGetPhysicalInteractionLength(
00052                              const G4Track& ,
00053                              G4ForceCondition* 
00054                             ){ return -1.0; };
00055                             
00056      //  no operation in  AtRestDoIt      
00057      virtual G4VParticleChange* AtRestDoIt(
00058                              const G4Track& ,
00059                              const G4Step&
00060                             ){return NULL;};
00061 
00062      //  no operation in  AlongStepGPIL
00063      virtual G4double AlongStepGetPhysicalInteractionLength(
00064                              const G4Track&,
00065                              G4double  ,
00066                              G4double  ,
00067                              G4double& ,
00068                              G4GPILSelection*
00069                             ){ return -1.0; };
00070 
00071      //  no operation in  AlongStepDoIt
00072      virtual G4VParticleChange* AlongStepDoIt(
00073                              const G4Track& ,
00074                              const G4Step& 
00075                             ) {return NULL;};
00076 
00077  private:
00078   
00079   // hide assignment operator as private 
00080       GLG4NeutronDiffusionAndCapture(GLG4NeutronDiffusionAndCapture&);
00081       GLG4NeutronDiffusionAndCapture& operator=(const GLG4NeutronDiffusionAndCapture& right);
00082 
00083  private:
00084   GLG4PrimaryGeneratorAction* _generator;
00085   G4HadronCaptureProcess* _neutronCaptureProcess;
00086 };
00087 
00088 #endif
00089 

Generated on Fri Jul 6 13:31:46 2007 for GLG4sim by  doxygen 1.3.9.1