// 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: 
// ---------------------------------------------------------------
//      GEANT 4 class inlined methods file 
//
//      For information related to this code contact:
//      CERN, IT Division, ASD group
//      History: based on object model of
//      2nd December 1995, G.Cosmo
//      ------------ G4VPAIenergyLoss physics process ------------
//                  by Laszlo Urban, 30 May 1997
// ***************************************************************
// It is the first implementation of the NEW UNIFIED ENERGY LOSS PROCESS.               
// It calculates the energy loss of charged hadrons.
// ***************************************************************
// corrected by L.Urban on 24/09/97
// 06.01.00 V.Grichine, modifications in GetConstraints
//

////////////////////////////////////////////////////////////////////
//
//

inline G4double
 G4VPAIenergyLoss::GetConstraints(const G4DynamicParticle *aParticle,
                                              G4Material *aMaterial    ) 
{
  //  G4cout<<"G4VPAIenergyLoss::GetConstraints is called"<<endl ; 
  //  return   2*mm ;
     if(aMaterial->GetState() == kStateGas) 
    {
      return 100*mm ;
    }
    else
    {
      return 0.1*mm ;
    }

}

//////////////////////////////////////////////////////////////////////////
//
//

/* ***********************************************************************

inline G4double G4VPAIenergyLoss::GetContinuousStepLimit(
                                               const G4Track& track,
                                               G4double,
                                               G4double currentMinimumStep,
                                               G4double&)
{
 
  G4double Step =
    GetConstraints(track.GetDynamicParticle(),track.GetMaterial()) ;

  if( (Step > 0.0) && (Step < currentMinimumStep) ) currentMinimumStep = Step ;

  return Step ;
}

*********************************************************** */

inline G4bool G4VPAIenergyLoss::IsApplicable(const G4ParticleDefinition&
                                                     particle)
{
   return(particle.GetPDGCharge()!= 0.);
}
         
