71    fUserRunAction(0), fUserEventAction(0),fUserPrimaryGeneratorAction(0),
 
   72    fUserTrackingAction(0), fUserSteppingAction(0), fUserStackingAction(0),
 
   73    theAdjointRunAction(0), theAdjointEventAction(0),
 
   74    adjoint_tracking_mode(false),last_ekin(0),last_ekin_nuc(0),
 
   75    last_cos_th(0),last_fwd_part_PDGEncoding(0),last_fwd_part_index(0),
 
   76    last_weight(0), ID_of_last_particle_that_reach_the_ext_source(0),
 
   77    nb_evt_of_last_run(0),area_of_the_adjoint_source(0),theAdjointPrimaryWeight(0)
 
  108   theRunManager->G4RunManager::SetUserAction(
this);
 
  144         G4cout<<
"****************************************************************"<<std::endl;
 
  145         G4cout<<
"*** Geant4 Reverse/Adjoint Monte Carlo mode                  ***"<<std::endl;
 
  146         G4cout<<
"*** Author:    L.Desorgher                                   ***"<<std::endl;
 
  147         G4cout<<
"*** Company:   SpaceIT GmbH, Bern, Switzerland               ***"<<std::endl;
 
  148         G4cout<<
"*** Sponsored by: ESA/ESTEC contract contract 21435/08/NL/AT ***"<<std::endl;  
 
  149         G4cout<<
"****************************************************************"<<std::endl;
 
static G4AdjointSimManager * GetInstance()
 
void UpdateListOfPrimaryParticles()
 
static G4ThreadLocal G4AdjointSimManager * instance
 
const G4VUserPrimaryGeneratorAction * GetUserPrimaryGeneratorAction() const 
 
size_t GetNbOfPrimaryFwdParticles()
 
void SetRestOfAdjointActions()
 
G4ThreeVector GetLastPosition()
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
std::vector< G4ParticleDefinition * > * GetListOfPrimaryFwdParticles()
 
G4bool AddaSphericalSurface(const G4String &SurfaceName, G4double radius, G4ThreeVector pos, G4double &area)
 
G4bool GetDidAdjParticleReachTheExtSource()
 
void SetAdjointSourceEmax(G4double Emax)
 
bool use_user_TrackingAction
 
CLHEP::Hep3Vector G4ThreeVector
 
G4UserStackingAction * fUserStackingAction
 
bool use_user_StackingAction
 
G4String & remove(str_size)
 
G4String last_fwd_part_name
 
void SetAdjointStackingAction(G4UserStackingAction *anAction)
 
void SwitchToAdjointSimulationMode()
 
void SetEmax(G4double val)
 
G4int last_fwd_part_PDGEncoding
 
virtual void EndOfRunAction(const G4Run *aRun)
 
G4AdjointSteppingAction * theAdjointSteppingAction
 
G4int last_fwd_part_index
 
G4int GetFwdParticlePDGEncodingAtEndOfLastAdjointTrack()
 
virtual void BeamOn(G4int n_event, const char *macroFile=0, G4int n_select=-1)
 
G4bool DefineSphericalAdjointSourceWithCentreAtTheCentreOfAVolume(G4double radius, const G4String &volume_name)
 
G4int GetFwdParticlePDGEncodingAtEndOfLastAdjointTrack()
 
G4int GetPDGEncoding() const 
 
const G4String & GetFwdParticleNameAtEndOfLastAdjointTrack()
 
void SetUserAdjointStackingAction(G4UserStackingAction *anAction)
 
G4AdjointTrackingAction * theAdjointTrackingAction
 
G4bool DefineSphericalAdjointSource(G4double radius, G4ThreeVector pos)
 
void SetListOfPrimaryFwdParticles(std::vector< G4ParticleDefinition * > *aListOfParticles)
 
G4double GetWeightAtEndOfLastAdjointTrack()
 
G4VUserPrimaryGeneratorAction * fUserPrimaryGeneratorAction
 
G4int GetLastFwdParticleIndex()
 
G4bool GetDidAdjParticleReachTheExtSource()
 
const G4UserSteppingAction * GetUserSteppingAction() const 
 
const G4String & GetParticleName() const 
 
virtual void EndOfRunAction(const G4Run *aRun)
 
void SetAdjointSourceEmin(G4double Emin)
 
G4UserRunAction * fUserRunAction
 
G4bool AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume(const G4String &SurfaceName, G4double radius, const G4String &volume_name, G4ThreeVector ¢er, G4double &area)
 
G4bool GetIsAdjointTrackingMode()
 
void SetNbPrimaryFwdGammasPerEvent(G4int nb)
 
void SetPrimaryIon(G4ParticleDefinition *adjointIon, G4ParticleDefinition *fwdIon)
 
G4double GetEkinAtEndOfLastAdjointTrack()
 
G4UserEventAction * fUserEventAction
 
G4ThreeVector last_direction
 
G4double GetEkinAtEndOfLastAdjointTrack()
 
void ConsiderParticleAsPrimary(const G4String &particle_name)
 
G4GLOB_DLL std::ostream G4cout
 
void SetAdjointTrackingMode(G4bool aBool)
 
const G4UserStackingAction * GetUserStackingAction() const 
 
G4UserTrackingAction * fUserTrackingAction
 
virtual void BeginOfRunAction(const G4Run *aRun)
 
G4bool DefineAdjointSourceOnTheExtSurfaceOfAVolume(const G4String &volume_name)
 
void SetNbOfPrimaryFwdGammasPerEvent(G4int)
 
G4UserRunAction * theAdjointRunAction
 
const G4UserEventAction * GetUserEventAction() const 
 
size_t GetNbOfAdjointPrimaryTypes()
 
void RunAdjointSimulation(G4int nb_evt)
 
G4double GetCosthAtEndOfLastAdjointTrack()
 
const G4UserTrackingAction * GetUserTrackingAction() const 
 
const G4String & GetParticleType() const 
 
G4double GetEkinNucAtEndOfLastAdjointTrack()
 
const G4String & GetPrimaryIonName()
 
void SetUserForwardSteppingAction(G4UserSteppingAction *anAction)
 
G4UserEventAction * theAdjointEventAction
 
void ResetRestOfUserActions()
 
G4AdjointStackingAction * theAdjointStackingAction
 
G4bool DefineSphericalExtSourceWithCentreAtTheCentreOfAVolume(G4double radius, const G4String &volume_name)
 
const G4String & GetFwdParticleNameAtEndOfLastAdjointTrack()
 
void SetPrimaryIon(G4ParticleDefinition *adjointIon, G4ParticleDefinition *fwdIon)
 
const G4String & GetPrimaryIonName()
 
G4AdjointSimMessenger * theMessenger
 
G4ThreeVector GetDirectionAtEndOfLastAdjointTrack()
 
G4bool DefineSphericalExtSource(G4double radius, G4ThreeVector pos)
 
void BackToFwdSimulationMode()
 
static G4AdjointCrossSurfChecker * GetInstance()
 
void SetPrimWeight(G4double weight)
 
G4ParticleDefinition * GetLastPartDef()
 
static G4RunManager * GetRunManager()
 
void SetExtSourceEMax(G4double Emax)
 
void SetAdjointRunAction(G4UserRunAction *anAction)
 
G4bool GetAdjointTrackingMode()
 
G4bool AddanExtSurfaceOfAvolume(const G4String &SurfaceName, const G4String &volume_name, G4double &area)
 
void SetAdjointEventAction(G4UserEventAction *anAction)
 
static G4ParticleTable * GetParticleTable()
 
G4UserSteppingAction * fUserSteppingAction
 
G4double GetEkinNucAtEndOfLastAdjointTrack()
 
G4double GetCosthAtEndOfLastAdjointTrack()
 
void NeglectParticleAsPrimary(const G4String &particle_name)
 
G4double area_of_the_adjoint_source
 
void ConsiderParticleAsPrimary(const G4String &particle_name)
 
void SetAdjointPrimarySourceOnAnExtSurfaceOfAVolume(const G4String &volume_name)
 
G4double GetWeightAtEndOfLastAdjointTrack()
 
std::vector< G4ParticleDefinition * > * GetListOfPrimaryFwdParticles()
 
G4double theAdjointPrimaryWeight
 
virtual void BeginOfRunAction(const G4Run *aRun)
 
static const G4double Emin
 
void RegisterAdjointPrimaryWeight(G4double aWeight)
 
G4bool DefineExtSourceOnTheExtSurfaceOfAVolume(const G4String &volume_name)
 
static const G4double Emax
 
bool user_action_already_defined
 
void SetUserAdjointSteppingAction(G4UserSteppingAction *anAction)
 
const G4UserRunAction * GetUserRunAction() const 
 
void SetKillTracks(G4bool aBool)
 
void SetUserFwdStackingAction(G4UserStackingAction *anAction)
 
G4ThreeVector GetPositionAtEndOfLastAdjointTrack()
 
void SetUserForwardTrackingAction(G4UserTrackingAction *anAction)
 
void SetExtSourceEmax(G4double Emax)
 
void RegisterAtEndOfAdjointTrack()
 
void SetSphericalAdjointPrimarySource(G4double radius, G4ThreeVector pos)
 
void SetAdjointMode(G4bool aBool)
 
void SetAdjointPrimaryRunAndStackingActions()
 
G4AdjointPrimaryGeneratorAction * theAdjointPrimaryGeneratorAction
 
G4ThreeVector GetPositionAtEndOfLastAdjointTrack()
 
G4int ID_of_last_particle_that_reach_the_ext_source
 
void SetAdjointSteppingAction(G4UserSteppingAction *anAction)
 
G4int GetFwdParticleIndexAtEndOfLastAdjointTrack()
 
static const G4double pos
 
G4ThreeVector GetLastMomentum()
 
G4ThreeVector GetDirectionAtEndOfLastAdjointTrack()
 
void SetEmin(G4double val)
 
void NeglectParticleAsPrimary(const G4String &particle_name)
 
G4int GetBaryonNumber() const 
 
G4bool adjoint_tracking_mode
 
void ResetUserPrimaryRunAndStackingActions()