Import Geant4 0.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-01 15:25:35 +02:00
parent 54d6b71f95
commit b97f8d0df7
3237 changed files with 807095 additions and 0 deletions
@@ -0,0 +1,85 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05CalorimeterHit.hh,v 2.2 1998/07/12 02:42:10 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05CalorimeterHit_h
#define ExN05CalorimeterHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
#include "G4LogicalVolume.hh"
#include "G4Transform3D.hh"
#include "G4RotationMatrix.hh"
class ExN05CalorimeterHit : public G4VHit
{
public:
ExN05CalorimeterHit();
ExN05CalorimeterHit(G4LogicalVolume* logVol);
~ExN05CalorimeterHit();
ExN05CalorimeterHit(const ExN05CalorimeterHit &right);
const ExN05CalorimeterHit& operator=(const ExN05CalorimeterHit &right);
int operator==(const ExN05CalorimeterHit &right) const;
inline void *operator new(size_t);
inline void operator delete(void *aHit);
void Draw();
void Print();
private:
G4double edep;
G4ThreeVector pos;
G4RotationMatrix rot;
const G4LogicalVolume* pLogV;
public:
inline void SetEdep(G4double de)
{ edep = de; };
inline void AddEdep(G4double de)
{ edep += de; };
inline G4double GetEdep()
{ return edep; };
inline void SetPos(G4ThreeVector xyz)
{ pos = xyz; };
inline G4ThreeVector GetPos()
{ return pos; };
inline void SetRot(G4RotationMatrix rmat)
{ rot = rmat; };
inline G4RotationMatrix GetRot()
{ return rot; };
inline const G4LogicalVolume * GetLogV()
{ return pLogV; };
};
typedef G4THitsCollection<ExN05CalorimeterHit> ExN05CalorimeterHitsCollection;
extern G4Allocator<ExN05CalorimeterHit> ExN05CalorimeterHitAllocator;
inline void* ExN05CalorimeterHit::operator new(size_t)
{
void *aHit;
aHit = (void *) ExN05CalorimeterHitAllocator.MallocSingle();
return aHit;
}
inline void ExN05CalorimeterHit::operator delete(void *aHit)
{
ExN05CalorimeterHitAllocator.FreeSingle((ExN05CalorimeterHit*) aHit);
}
#endif
@@ -0,0 +1,46 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05CalorimeterSD.hh,v 2.4 1998/12/11 19:14:02 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05CalorimeterSD_h
#define ExN05CalorimeterSD_h 1
#include "ExN05CalorimeterHit.hh"
#include "G4VSensitiveDetector.hh"
#include "G4Step.hh"
class ExN05CalorimeterSD : public G4VSensitiveDetector
{
public:
ExN05CalorimeterSD(G4String name, G4int nCells, G4String colName);
~ExN05CalorimeterSD();
void Initialize(G4HCofThisEvent*HCE);
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
void EndOfEvent(G4HCofThisEvent*HCE);
void clear();
void DrawAll();
void PrintAll();
private:
ExN05CalorimeterHitsCollection *CalCollection;
int* CellID;
int numberOfCells;
int HCID;
};
#endif
@@ -0,0 +1,59 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05DetectorConstruction.hh,v 2.3 1998/12/10 04:11:02 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05DetectorConstruction_h
#define ExN05DetectorConstruction_h 1
#include "G4LogicalVolume.hh"
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4UserLimits;
class ExN05DetectorMessenger;
class ExN05DetectorConstruction : public G4VUserDetectorConstruction
{
public:
ExN05DetectorConstruction();
~ExN05DetectorConstruction();
public:
G4VPhysicalVolume* Construct();
// methods for UserLimits in crystal
void UseUserLimits(G4bool value);
G4bool IsUseUserLimits() { return fUseUserLimits; }
G4double GetMaxTimeInCrystal() const { return theMaxTimeCutsInCrystal; }
G4double GetMinEkineInCrystal() const { return theMinEkineCutsInCrystal; }
G4double GetMinRangeInCrystal() const { return theMinRangeCutsInCrystal; }
void SetMaxTimeInCrystal(G4double value);
void SetMinEkineInCrystal(G4double value);
void SetMinRangeInCrystal(G4double value);
private:
G4LogicalVolume* theCrystalLog;
G4LogicalVolume* theTowerLog;
G4bool fUseUserLimits;
G4UserLimits* theUserLimitsForCrystal;
G4double theMaxTimeCutsInCrystal;
G4double theMinEkineCutsInCrystal;
G4double theMinRangeCutsInCrystal;
// messeneger
ExN05DetectorMessenger* theMessenger;
};
#endif
@@ -0,0 +1,44 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05DetectorMessenger.hh,v 2.1 1998/08/14 08:21:17 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
#ifndef ExN05DetectorMessenger_h
#define ExN05DetectorMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class ExN05DetectorConstruction;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithADoubleAndUnit;
class ExN05DetectorMessenger: public G4UImessenger
{
public:
ExN05DetectorMessenger(ExN05DetectorConstruction * myDet);
~ExN05DetectorMessenger();
void SetNewValue(G4UIcommand * command,G4String newValues);
G4String GetCurrentValue(G4UIcommand * command);
private:
ExN05DetectorConstruction* myDetector;
G4UIdirectory* mydetDir;
G4UIcmdWithAString* SwitchCmd;
G4UIcmdWithADoubleAndUnit* TmaxCmd;
G4UIcmdWithADoubleAndUnit* EminCmd;
G4UIcmdWithADoubleAndUnit* RminCmd;
};
#endif
@@ -0,0 +1,64 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05EMShowerModel.hh,v 2.1 1998/12/10 04:07:36 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
//----------------------------------------------
// Parameterisation of e+/e-/gamma producing hits
// The hits are the same as defined in the detailed
// simulation.
//----------------------------------------------
#ifndef ExN05EMShowerModel_h
#define ExN05EMShowerModel_h 1
#include "ExN05EnergySpot.hh"
#include "G4VFastSimulationModel.hh"
#include "G4Step.hh"
#include "G4VTouchable.hh"
#include "G4TouchableHistory.hh"
#include <rw/tvordvec.h>
class ExN05EMShowerModel : public G4VFastSimulationModel
{
public:
//-------------------------
// Constructor, destructor
//-------------------------
ExN05EMShowerModel (G4String, G4LogicalVolume*);
ExN05EMShowerModel (G4String);
~ExN05EMShowerModel ();
//------------------------------
// Virtual methods of the base
// class to be coded by the user
//------------------------------
// -- IsApplicable
G4bool IsApplicable(const G4ParticleDefinition&);
// -- ModelTrigger
G4bool ModelTrigger(const G4FastTrack &);
// -- User method DoIt
void DoIt(const G4FastTrack&, G4FastStep&);
private:
void AssignSpotAndCallHit(const ExN05EnergySpot &eSpot);
void FillFakeStep(const ExN05EnergySpot &eSpot);
void Explode(const G4FastTrack&);
void BuildDetectorResponse();
G4Step *fFakeStep;
G4StepPoint *fFakePreStepPoint, *fFakePostStepPoint;
G4VTouchable*fpTouchable;
G4Navigator *fpNavigator;
G4bool fNaviSetup;
RWTValOrderedVector<ExN05EnergySpot> feSpotList;
};
#endif
@@ -0,0 +1,48 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05EnergySpot.hh,v 2.2 1998/12/10 04:11:07 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05EnergySpot_h
#define ExN05EnergySpot_h
#include "G4ThreeVector.hh"
class G4Colour;
class ExN05EnergySpot
{
public:
ExN05EnergySpot();
ExN05EnergySpot(const G4ThreeVector& point, G4double E);
~ExN05EnergySpot();
inline void SetEnergy(const G4double& E) {Energy = E;}
inline G4double GetEnergy() const {return Energy;}
inline void SetPosition(const G4ThreeVector& point) {Point = point;}
inline G4ThreeVector GetPosition() const {return Point;}
// Required by Rogue Wave explicitely,
// when using RWTValOrderedVector<ExN05EnergySpot>
int operator==(const ExN05EnergySpot& eSpot) const
{
return (Energy==eSpot.Energy && Point==eSpot.Point) ? 1 : 0;
};
// Draw:
void Draw(G4Colour* color = NULL);
// Print:
void Print();
private:
G4double Energy;
G4ThreeVector Point;
};
#endif
@@ -0,0 +1,42 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05EventAction.hh,v 2.2 1998/12/10 04:11:11 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05EventAction_h
#define ExN05EventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
class G4Event;
class ExN05EventAction : public G4UserEventAction
{
public:
ExN05EventAction();
~ExN05EventAction();
public:
void BeginOfEventAction();
void EndOfEventAction();
private:
G4int calorimeterCollID;
G4int hadCalorimeterCollID;
G4bool drawFlag;
public:
inline void SetDrawFlag(G4bool val)
{ drawFlag = val; };
};
#endif
@@ -0,0 +1,34 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05EventActionMessenger.hh,v 2.1 1998/07/12 02:42:14 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05EventActionMessenger_h
#define ExN05EventActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class G4UIdirectory;
class G4UIcmdWithABool;
class ExN05EventAction;
class ExN05EventActionMessenger: public G4UImessenger
{
public:
ExN05EventActionMessenger(ExN05EventAction* EA);
void SetNewValue(G4UIcommand* command, G4String newValues);
private:
ExN05EventAction* EventAction;
G4UIdirectory* eventDirectory;
G4UIcmdWithABool* drawEventCmd;
};
#endif
@@ -0,0 +1,54 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05MaxTimeCuts.hh,v 2.2 1998/08/16 14:09:50 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// ------------------------------------------------------------
// 14 Aug. 1998 H.Kurashige
// ------------------------------------------------------------
#ifndef ExN05MaxTimeCuts_h
#define ExN05MaxTimeCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "ExN05SpecialCuts.hh"
class ExN05MaxTimeCuts : public ExN05SpecialCuts
{
public:
ExN05MaxTimeCuts(const G4String& processName ="ExN05MaxTimeCuts" );
~ExN05MaxTimeCuts();
// PostStep GPIL
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
private:
// hide assignment operator as private
ExN05MaxTimeCuts(ExN05MaxTimeCuts&);
ExN05MaxTimeCuts& operator=(const ExN05MaxTimeCuts& right);
};
#endif
@@ -0,0 +1,54 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05MinEkineCuts.hh,v 2.2 1998/08/16 14:09:51 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// ------------------------------------------------------------
// 14 Aug. 1998 H.Kurashige
// ------------------------------------------------------------
#ifndef ExN05MinEkineCuts_h
#define ExN05MinEkineCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "ExN05SpecialCuts.hh"
class ExN05MinEkineCuts : public ExN05SpecialCuts
{
public:
ExN05MinEkineCuts(const G4String& processName ="ExN05MinEkineCuts" );
~ExN05MinEkineCuts();
// PostStep GPIL
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
private:
// hide assignment operator as private
ExN05MinEkineCuts(ExN05MinEkineCuts&);
ExN05MinEkineCuts& operator=(const ExN05MinEkineCuts& right);
};
#endif
@@ -0,0 +1,54 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05MinRangeCuts.hh,v 2.2 1998/08/16 14:09:51 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// ------------------------------------------------------------
// 14 Aug. 1998 H.Kurashige
// ------------------------------------------------------------
#ifndef ExN05MinRangeCuts_h
#define ExN05MinRangeCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "ExN05SpecialCuts.hh"
class ExN05MinRangeCuts : public ExN05SpecialCuts
{
public:
ExN05MinRangeCuts(const G4String& processName ="ExN05MinRangeCuts" );
~ExN05MinRangeCuts();
// PostStep GPIL
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
private:
// hide assignment operator as private
ExN05MinRangeCuts(ExN05MinRangeCuts&);
ExN05MinRangeCuts& operator=(const ExN05MinRangeCuts& right);
};
#endif
@@ -0,0 +1,53 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05PhysicsList.hh,v 2.2 1998/08/14 08:21:17 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
#ifndef ExN05PhysicsList_h
#define ExN05PhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
class ExN05PhysicsList: public G4VUserPhysicsList
{
public:
ExN05PhysicsList();
virtual ~ExN05PhysicsList();
protected:
// Construct particle and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
//
virtual void SetCuts(G4double aCut);
protected:
// these methods Construct particles
virtual void ConstructBosons();
virtual void ConstructLeptons();
virtual void ConstructMesons();
virtual void ConstructBarions();
virtual void ConstructIons();
protected:
// these methods Construct physics processes and register them
void AddParameterisation();
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void ConstructHad();
virtual void ConstructLeptHad();
virtual void AddTransportation();
};
#endif
@@ -0,0 +1,42 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05PiModel.hh,v 2.0 1998/07/02 14:09:18 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
//----------------------------------------
// Simple example of a "parameterisation".
//----------------------------------------
#ifndef ExN05PiModel_h
#define ExN05PiModel_h 1
#include "G4VFastSimulationModel.hh"
class ExN05PiModel : public G4VFastSimulationModel
{
public:
//-------------------------
// Constructor, destructor
//-------------------------
ExN05PiModel (G4LogicalVolume *anEnvelope);
~ExN05PiModel ();
//------------------------------
// Virtual methods of the base
// class to be coded by the user
//------------------------------
// -- IsApplicable
G4bool IsApplicable(const G4ParticleDefinition&);
// -- ModelTrigger
G4bool ModelTrigger(const G4FastTrack &);
// -- User method DoIt
void DoIt(const G4FastTrack&, G4FastStep&);
};
#endif
@@ -0,0 +1,62 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05PionShowerModel.hh,v 2.1 1998/12/10 04:05:49 verderi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
//----------------------------------------------
// Parameterisation for pi+/pi- producing hits.
//----------------------------------------------
#ifndef ExN05PionShowerModel_h
#define ExN05PionShowerModel_h 1
#include "ExN05EnergySpot.hh"
#include "G4VFastSimulationModel.hh"
#include "G4Step.hh"
#include "G4VTouchable.hh"
#include "G4TouchableHistory.hh"
#include <rw/tvordvec.h>
class ExN05PionShowerModel : public G4VFastSimulationModel
{
public:
//-------------------------
// Constructor, destructor
//-------------------------
ExN05PionShowerModel (G4String, G4LogicalVolume*);
ExN05PionShowerModel (G4String);
~ExN05PionShowerModel ();
//------------------------------
// Virtual methods of the base
// class to be coded by the user
//------------------------------
// -- IsApplicable
G4bool IsApplicable(const G4ParticleDefinition&);
// -- ModelTrigger
G4bool ModelTrigger(const G4FastTrack &);
// -- User method DoIt
void DoIt(const G4FastTrack&, G4FastStep&);
private:
void AssignSpotAndCallHit(const ExN05EnergySpot &eSpot);
void FillFakeStep(const ExN05EnergySpot &eSpot);
void Explode(const G4FastTrack&);
void BuildDetectorResponse();
G4Step *fFakeStep;
G4StepPoint *fFakePreStepPoint, *fFakePostStepPoint;
G4VTouchable*fpTouchable;
G4Navigator *fpNavigator;
G4bool fNaviSetup;
RWTValOrderedVector<ExN05EnergySpot> feSpotList;
};
#endif
@@ -0,0 +1,36 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05PrimaryGeneratorAction.hh,v 2.1 1998/07/12 02:42:16 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05PrimaryGeneratorAction_h
#define ExN05PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
class G4ParticleGun;
class G4Event;
class ExN05PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
ExN05PrimaryGeneratorAction();
~ExN05PrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event* anEvent);
G4ParticleGun* GetParticleGun();
private:
G4ParticleGun* particleGun;
};
#endif
@@ -0,0 +1,37 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05RunAction.hh,v 2.1 1998/07/12 02:42:16 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05RunAction_h
#define ExN05RunAction_h 1
#include "G4UserRunAction.hh"
#include "G4Timer.hh"
#include "globals.hh"
class G4Run;
class ExN05RunAction : public G4UserRunAction
{
public:
ExN05RunAction();
~ExN05RunAction();
public:
void BeginOfRunAction(G4Run* aRun);
void EndOfRunAction(G4Run* aRun);
private:
G4Timer* timer;
G4int runIDcounter;
};
#endif
@@ -0,0 +1,84 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05SpecialCuts.hh,v 2.3 1998/08/16 14:09:52 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// ------------------------------------------------------------
// 15 April 1998 M.Maire
// ------------------------------------------------------------
#ifndef ExN05SpecialCuts_h
#define ExN05SpecialCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "G4VProcess.hh"
class ExN05SpecialCuts : public G4VProcess
{
public:
ExN05SpecialCuts(const G4String& processName ="ExN05SpecialCut" );
~ExN05SpecialCuts(){};
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
virtual G4VParticleChange* PostStepDoIt(
const G4Track& ,
const G4Step&
);
// 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
ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right){return *this;};
};
#endif
@@ -0,0 +1,34 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05SteppingAction.hh,v 2.1 1998/07/12 02:42:17 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05SteppingAction_h
#define ExN05SteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "globals.hh"
class ExN05SteppingAction : public G4UserSteppingAction
{
public:
ExN05SteppingAction();
~ExN05SteppingAction(){};
void UserSteppingAction();
private:
G4bool drawFlag;
public:
inline void SetDrawFlag(G4bool val)
{ drawFlag = val; };
};
#endif
@@ -0,0 +1,37 @@
// This code implementation is the intellectual property of
// the RD44 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: ExN05SteppingActionMessenger.hh,v 2.1 1998/07/12 02:42:18 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
#ifndef ExN05SteppingActionMessenger_h
#define ExN05SteppingActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
#include "G4UIcommand.hh"
class ExN05SteppingAction;
class G4UIdirectory;
class G4UIcmdWithABool;
class ExN05SteppingActionMessenger: public G4UImessenger
{
public:
ExN05SteppingActionMessenger(ExN05SteppingAction *SA);
void SetNewValue(G4UIcommand* command, G4String newValues);
private:
ExN05SteppingAction* SteppingAction;
G4UIdirectory* stepDirectory;
G4UIcmdWithABool* drawStepCmd;
G4UIcmdWithABool* verboseStepCmd;
};
#endif
@@ -0,0 +1,13 @@
// -----------------------------------
// Header file for RandomGamma:
// adaptation of RNGAMA function from
// KERNLIB
// -----------------------------------
#ifndef RandomGamma_h
#define RanfomGamma_h 1
extern double RandomGamma(double);
#endif