/home/cern/BDSIM_new/include/BDSUserSpecialCuts.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 
00007 // This code implementation is the intellectual property of
00008 // the GEANT4 collaboration.
00009 //
00010 // By copying, distributing or modifying the Program (or any work
00011 // based on the Program) you indicate your acceptance of this statement,
00012 // and all its terms.
00013 //
00014 // $Id: BDSUserSpecialCuts.hh,v 1.1 2005/01/22 17:05:31 agapov Exp $
00015 // GEANT4 tag $Name:  $
00016 // ------------------------------------------------------------
00017 //                  15 April 1998  M.Maire
00018 // ------------------------------------------------------------
00019 //
00020 // class description
00021 //
00022 // a "process" to be registered to the process manager of each particle,
00023 // in the UserPhysicsList, in order to take account the user limits defined in the 
00024 // BDSUserLimits attached to a logical volume.
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 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00035 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00036 
00037 class BDSUserSpecialCuts : public G4VProcess 
00038 {
00039   public:  //with description     
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:  //without description 
00057                             
00058      //  no operation in  AtRestGPIL
00059      virtual G4double AtRestGetPhysicalInteractionLength(
00060                              const G4Track& ,
00061                              G4ForceCondition* 
00062                             ){ return -1.0; };
00063                             
00064      //  no operation in  AtRestDoIt      
00065      virtual G4VParticleChange* AtRestDoIt(
00066                              const G4Track& ,
00067                              const G4Step&
00068                             ){return NULL;};
00069 
00070      //  no operation in  AlongStepGPIL
00071      virtual G4double AlongStepGetPhysicalInteractionLength(
00072                              const G4Track&,
00073                              G4double  ,
00074                              G4double  ,
00075                              G4double& ,
00076                              G4GPILSelection*
00077                             ){ return -1.0; };
00078 
00079      //  no operation in  AlongStepDoIt
00080      virtual G4VParticleChange* AlongStepDoIt(
00081                              const G4Track& ,
00082                              const G4Step& 
00083                             ) {return NULL;};
00084 
00085   private:
00086   
00087   // hide assignment operator as private 
00088       BDSUserSpecialCuts(BDSUserSpecialCuts&);
00089       BDSUserSpecialCuts& operator=(const BDSUserSpecialCuts& right);
00090 
00091 };
00092 
00093 #endif
00094 

Generated on Wed Mar 5 17:25:22 2008 for BDSIM by  doxygen 1.5.3