G4VErrorLimitProcess.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id: G4VErrorLimitProcess.hh 69766 2013-05-14 14:33:55Z gcosmo $
00028 //
00029 //
00030 // Class description:
00031 //
00032 // Base class for classes limiting the step.
00033 
00034 // History:
00035 //
00036 // Created:     P.Arce          May 2007
00037 // --------------------------------------------------------------------
00038 
00039 #ifndef G4VErrorLimitProcess_hh
00040 #define G4VErrorLimitProcess_hh
00041 
00042 #include "G4ios.hh" 
00043 #include "globals.hh"
00044 #include "G4VDiscreteProcess.hh"
00045 #include "G4PhysicsTable.hh"
00046 #include "G4PhysicsLogVector.hh"
00047 #include "G4ElementTable.hh"
00048 #include "G4Gamma.hh" 
00049 #include "G4Electron.hh"
00050 #include "G4Step.hh" 
00051 
00052 class G4ErrorLimitsMessenger;
00053 
00054 //-----------------------------------------------------------------
00055  
00056 class G4VErrorLimitProcess : public G4VDiscreteProcess
00057 {
00058 
00059  public:  // with description
00060   
00061   G4VErrorLimitProcess(const G4String& processName);
00062   
00063   ~G4VErrorLimitProcess();
00064   
00065   virtual G4double
00066   PostStepGetPhysicalInteractionLength( const G4Track& track,
00067                                               G4double previousStepSize,
00068                                               G4ForceCondition* condition ) = 0;
00069     // Returns the step limit
00070 
00071   virtual  G4double GetMeanFreePath(const class G4Track &, G4double,
00072                                     enum G4ForceCondition *);
00073     // Returns kInfinity
00074 
00075   virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step& );
00076     // No action but retrieving the G4VParticleChange
00077     // extracted from the G4Track
00078 
00079   // Get and Set methods
00080 
00081   G4double GetStepLimit() const { return theStepLimit; }
00082   void SetStepLimit( G4double val ) { theStepLimit = val; }
00083 
00084  protected:
00085 
00086   G4double theStepLimit;  // limit set by the user
00087   G4double theStepLength; // step length extracted from the user step limit,
00088                           // with the algorithms of each concrete class
00089 
00090   G4VParticleChange theParticleChange;
00091 };
00092   
00093 #endif

Generated on Mon May 27 17:50:12 2013 for Geant4 by  doxygen 1.4.7