// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4UserLimits.icc,v 1.5 2000/02/17 16:13:08 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
//
// 
//
// class G4UserLimits inline implementation
// 
// 01-11-97: change GetMaxAllowedStep(), Hisaya Kurashige
// 08-04-98: new data members, mma
//

#include "G4UserLimits.hh"

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4UserLimits::G4UserLimits(G4double ustepMax,
			          G4double utrakMax,
			          G4double utimeMax,
			          G4double uekinMin,
			          G4double urangMin)
:fMaxStep (ustepMax),fMaxTrack(utrakMax),fMaxTime(utimeMax),
 fMinEkine(uekinMin),fMinRange(urangMin),fType("base")
{}

inline G4UserLimits::G4UserLimits(const G4String& type,
				  G4double ustepMax,
			          G4double utrakMax,
			          G4double utimeMax,
			          G4double uekinMin,
			          G4double urangMin)
:fMaxStep (ustepMax),fMaxTrack(utrakMax),fMaxTime(utimeMax),
 fMinEkine(uekinMin),fMinRange(urangMin),fType(type)
{}

inline const G4String& G4UserLimits::GetType() const
{
  return fType;
}

inline void G4UserLimits::SetType(const G4String& type)
{
  fType = type;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4UserLimits::~G4UserLimits(){}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  
inline G4double G4UserLimits::GetMaxAllowedStep(const G4Track&)
{
  return fMaxStep;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4double G4UserLimits::GetUserMaxTrackLength(const G4Track&)
{
  return fMaxTrack;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4double G4UserLimits::GetUserMaxTime(const G4Track&)
{
  return fMaxTime;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4double G4UserLimits::GetUserMinEkine(const G4Track&)
{
  return fMinEkine;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline G4double G4UserLimits::GetUserMinRange(const G4Track&)
{
  return fMinRange;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline void G4UserLimits::SetMaxAllowedStep(G4double ustepMax)
{
  fMaxStep=ustepMax;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline void G4UserLimits::SetUserMaxTrackLength(G4double utrakMax)
{
  fMaxTrack=utrakMax;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline void G4UserLimits::SetUserMaxTime(G4double utimeMax)
{
  fMaxTime=utimeMax;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline void G4UserLimits::SetUserMinEkine(G4double uekinMin)
{
  fMinEkine=uekinMin;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

inline void G4UserLimits::SetUserMinRange(G4double urangMin)
{
  fMinRange=urangMin;
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
