//////////////////////////////////////////////////////////////////// /// \class GLG4DeferTrackProc /// /// \author G Horton-Smith (GLG4) -- not on SNO+ /// \author Phil Jones -- contact person /// /// \brief This file is part of the GenericLAND software library. /// Process to limit step length to stay within event time /// and defer long tracks (AND tracks which start after event time) using /// deferred particle "generator". /// /// REVISION HISTORY:\n /// Written: G. Horton-Smith, 29-Oct-2001 /// //////////////////////////////////////////////////////////////////// #ifndef GLG4DeferTrackProc_h #define GLG4DeferTrackProc_h 1 #include "G4ios.hh" #include "globals.hh" #include "G4VProcess.hh" //////////////////////////////////////////////////////////////// class GLG4PrimaryGeneratorAction; class G4HadronCaptureProcess; class GLG4DeferTrackProc : public G4VProcess { public: //with description GLG4DeferTrackProc(const G4String& processName="DeferTrackProc"); ~GLG4DeferTrackProc(); virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, G4ForceCondition* condition ); virtual G4VParticleChange* PostStepDoIt( const G4Track& , const G4Step& ); public: //without description // no operation in AtRestGPIL virtual G4double AtRestGetPhysicalInteractionLength( const G4Track& , G4ForceCondition* ){ return -1.0; }; // no operation in AtRestDoIt virtual G4VParticleChange* AtRestDoIt( const G4Track& , const G4Step& ){return NULL;}; // no operation in AlongStepGPIL virtual G4double AlongStepGetPhysicalInteractionLength( const G4Track&, G4double , G4double , G4double& , G4GPILSelection* ){ return -1.0; }; // no operation in AlongStepDoIt virtual G4VParticleChange* AlongStepDoIt( const G4Track& , const G4Step& ) {return NULL;}; private: // hide assignment operator as private GLG4DeferTrackProc(GLG4DeferTrackProc&); GLG4DeferTrackProc& operator=(const GLG4DeferTrackProc& right); private: GLG4PrimaryGeneratorAction* fGenerator; }; #endif