Import Geant4 1.0.0 source tree
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
// 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: Em5CalorHit.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5CalorHit_h
|
||||
#define Em5CalorHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5CalorHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
Em5CalorHit();
|
||||
~Em5CalorHit();
|
||||
Em5CalorHit(const Em5CalorHit&);
|
||||
const Em5CalorHit& operator=(const Em5CalorHit&);
|
||||
int operator==(const Em5CalorHit&) const;
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
|
||||
void Print();
|
||||
|
||||
public:
|
||||
|
||||
void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;};
|
||||
void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;};
|
||||
|
||||
G4double GetEdepAbs() { return EdepAbs; };
|
||||
G4double GetTrakAbs() { return TrackLengthAbs; };
|
||||
G4double GetEdepGap() { return EdepGap; };
|
||||
G4double GetTrakGap() { return TrackLengthGap; };
|
||||
|
||||
private:
|
||||
|
||||
G4double EdepAbs, TrackLengthAbs;
|
||||
G4double EdepGap, TrackLengthGap;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
typedef G4THitsCollection<Em5CalorHit> Em5CalorHitsCollection;
|
||||
|
||||
extern G4Allocator<Em5CalorHit> Em5CalorHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void* Em5CalorHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*) Em5CalorHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void Em5CalorHit::operator delete(void* aHit)
|
||||
{
|
||||
Em5CalorHitAllocator.FreeSingle((Em5CalorHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// 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: Em5CalorimeterSD.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5CalorimeterSD_h
|
||||
#define Em5CalorimeterSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em5DetectorConstruction;
|
||||
class G4HCofThisEvent;
|
||||
class G4Step;
|
||||
#include "Em5CalorHit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5CalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
|
||||
Em5CalorimeterSD(G4String, Em5DetectorConstruction* );
|
||||
~Em5CalorimeterSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*);
|
||||
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
|
||||
void EndOfEvent(G4HCofThisEvent*);
|
||||
void clear();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
|
||||
Em5CalorHitsCollection* CalCollection;
|
||||
Em5DetectorConstruction* Detector;
|
||||
G4int* HitID;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
// 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: Em5DetectorConstruction.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5DetectorConstruction_h
|
||||
#define Em5DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
class G4Material;
|
||||
class G4UniformMagField;
|
||||
class Em5DetectorMessenger;
|
||||
class Em5CalorimeterSD;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
Em5DetectorConstruction();
|
||||
~Em5DetectorConstruction();
|
||||
|
||||
public:
|
||||
|
||||
void SetAbsorberMaterial (G4String);
|
||||
void SetAbsorberThickness(G4double);
|
||||
void SetAbsorberSizeYZ (G4double);
|
||||
|
||||
void SetAbsorberXpos(G4double);
|
||||
|
||||
void SetWorldMaterial(G4String);
|
||||
void SetWorldSizeX (G4double);
|
||||
void SetWorldSizeYZ (G4double);
|
||||
|
||||
void SetMagField(G4double);
|
||||
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
void UpdateGeometry();
|
||||
|
||||
public:
|
||||
|
||||
void PrintCalorParameters();
|
||||
|
||||
G4Material* GetAbsorberMaterial() {return AbsorberMaterial;};
|
||||
G4double GetAbsorberThickness() {return AbsorberThickness;};
|
||||
G4double GetAbsorberSizeYZ() {return AbsorberSizeYZ;};
|
||||
|
||||
G4double GetAbsorberXpos() {return XposAbs;};
|
||||
G4double GetxstartAbs() {return xstartAbs;};
|
||||
G4double GetxendAbs() {return xendAbs;};
|
||||
|
||||
G4Material* GetWorldMaterial() {return WorldMaterial;};
|
||||
G4double GetWorldSizeX() {return WorldSizeX;};
|
||||
G4double GetWorldSizeYZ() {return WorldSizeYZ;};
|
||||
|
||||
const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;};
|
||||
const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;};
|
||||
|
||||
private:
|
||||
|
||||
G4Material* AbsorberMaterial;
|
||||
G4double AbsorberThickness;
|
||||
G4double AbsorberSizeYZ;
|
||||
|
||||
G4double XposAbs;
|
||||
G4double xstartAbs, xendAbs;
|
||||
|
||||
G4Material* WorldMaterial;
|
||||
G4double WorldSizeX;
|
||||
G4double WorldSizeYZ;
|
||||
|
||||
G4bool defaultWorld;
|
||||
|
||||
G4Box* solidWorld; //pointer to the solid World
|
||||
G4LogicalVolume* logicWorld; //pointer to the logical World
|
||||
G4VPhysicalVolume* physiWorld; //pointer to the physical World
|
||||
|
||||
G4Box* solidAbsorber; //pointer to the solid Absorber
|
||||
G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber
|
||||
G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber
|
||||
|
||||
G4UniformMagField* magField; //pointer to the magnetic field
|
||||
|
||||
Em5DetectorMessenger* detectorMessenger; //pointer to the Messenger
|
||||
Em5CalorimeterSD* calorimeterSD; //pointer to the sensitive detector
|
||||
|
||||
private:
|
||||
|
||||
void DefineMaterials();
|
||||
void ComputeCalorParameters();
|
||||
G4VPhysicalVolume* ConstructCalorimeter();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void Em5DetectorConstruction::ComputeCalorParameters()
|
||||
{
|
||||
// Compute derived parameters of the calorimeter
|
||||
|
||||
xstartAbs = XposAbs-0.5*AbsorberThickness;
|
||||
xendAbs = XposAbs+0.5*AbsorberThickness;
|
||||
|
||||
if (defaultWorld)
|
||||
{
|
||||
WorldSizeX = 1.5*AbsorberThickness; WorldSizeYZ= 1.2*AbsorberSizeYZ;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
// 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: Em5DetectorMessenger.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5DetectorMessenger_h
|
||||
#define Em5DetectorMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em5DetectorConstruction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithoutParameter;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5DetectorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
Em5DetectorMessenger(Em5DetectorConstruction* );
|
||||
~Em5DetectorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em5DetectorConstruction* Em5Detector;
|
||||
|
||||
G4UIdirectory* Em5detDir;
|
||||
|
||||
G4UIcmdWithAString* AbsMaterCmd;
|
||||
G4UIcmdWithADoubleAndUnit* AbsThickCmd;
|
||||
G4UIcmdWithADoubleAndUnit* AbsSizYZCmd;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* AbsXposCmd;
|
||||
|
||||
G4UIcmdWithAString* WorldMaterCmd;
|
||||
G4UIcmdWithADoubleAndUnit* WorldXCmd;
|
||||
G4UIcmdWithADoubleAndUnit* WorldYZCmd;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* MagFieldCmd;
|
||||
G4UIcmdWithoutParameter* UpdateCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
// 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: Em5EventAction.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5EventAction_h
|
||||
#define Em5EventAction_h 1
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em5RunAction;
|
||||
class Em5EventActionMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
Em5EventAction(Em5RunAction* Em5RA);
|
||||
~Em5EventAction();
|
||||
|
||||
public:
|
||||
void BeginOfEventAction(const G4Event*);
|
||||
void EndOfEventAction(const G4Event*);
|
||||
G4int GetEventno();
|
||||
void setEventVerbose(G4int level);
|
||||
|
||||
void CountStepsCharged() ;
|
||||
void CountStepsNeutral() ;
|
||||
void AddCharged() ;
|
||||
void AddNeutral() ;
|
||||
void AddE();
|
||||
void AddP();
|
||||
void SetTr();
|
||||
void SetRef();
|
||||
|
||||
void SetDrawFlag(G4String val) {drawFlag = val;};
|
||||
void SetPrintModulo(G4int val) {printModulo = val;};
|
||||
|
||||
private:
|
||||
G4int calorimeterCollID;
|
||||
Em5EventActionMessenger* eventMessenger;
|
||||
Em5RunAction* runaction;
|
||||
G4int verboselevel;
|
||||
G4double nstep,nstepCharged,nstepNeutral;
|
||||
G4double Nch,Nne;
|
||||
G4double NE,NP;
|
||||
G4double Transmitted,Reflected ;
|
||||
|
||||
G4String drawFlag;
|
||||
G4int printModulo;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
// 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: Em5EventActionMessenger.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5EventActionMessenger_h
|
||||
#define Em5EventActionMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em5EventAction;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5EventActionMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
Em5EventActionMessenger(Em5EventAction*);
|
||||
~Em5EventActionMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em5EventAction* eventAction;
|
||||
G4UIcmdWithAnInteger* setVerboseCmd;
|
||||
G4UIcmdWithAString* DrawCmd;
|
||||
G4UIcmdWithAnInteger* PrintCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,77 @@
|
||||
// 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: Em5PhysicsList.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5PhysicsList_h
|
||||
#define Em5PhysicsList_h 1
|
||||
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em5DetectorConstruction;
|
||||
class Em5PhysicsListMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5PhysicsList: public G4VUserPhysicsList
|
||||
{
|
||||
public:
|
||||
Em5PhysicsList( Em5DetectorConstruction*);
|
||||
~Em5PhysicsList();
|
||||
|
||||
protected:
|
||||
// Construct particle and physics
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
void SetCuts();
|
||||
|
||||
protected:
|
||||
// these methods Construct particles
|
||||
void ConstructBosons();
|
||||
void ConstructLeptons();
|
||||
void ConstructMesons();
|
||||
void ConstructBarions();
|
||||
|
||||
protected:
|
||||
// these methods Construct physics processes and register them
|
||||
void ConstructGeneral();
|
||||
void ConstructEM();
|
||||
|
||||
public:
|
||||
|
||||
void SetGammaCut(G4double);
|
||||
void SetElectronCut(G4double);
|
||||
void SetProtonCut(G4double);
|
||||
void SetCutsByEnergy(G4double);
|
||||
void GetRange(G4double);
|
||||
|
||||
void SetMaxStep(G4double);
|
||||
|
||||
private:
|
||||
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForProton;
|
||||
G4double currentDefaultCut;
|
||||
|
||||
G4double MaxChargedStep;
|
||||
|
||||
Em5DetectorConstruction* pDet;
|
||||
Em5PhysicsListMessenger* physicsListMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
// 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: Em5PhysicsListMessenger.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5PhysicsListMessenger_h
|
||||
#define Em5PhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em5PhysicsList;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5PhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
Em5PhysicsListMessenger(Em5PhysicsList*);
|
||||
~Em5PhysicsListMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
Em5PhysicsList* Em5List;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* cutGCmd;
|
||||
G4UIcmdWithADoubleAndUnit* cutECmd;
|
||||
G4UIcmdWithADoubleAndUnit* cutPCmd;
|
||||
G4UIcmdWithADoubleAndUnit* rCmd;
|
||||
G4UIcmdWithADoubleAndUnit* eCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setMaxStepCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// 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: Em5PrimaryGeneratorAction.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5PrimaryGeneratorAction_h
|
||||
#define Em5PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
class Em5DetectorConstruction;
|
||||
class Em5PrimaryGeneratorMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
Em5PrimaryGeneratorAction(Em5DetectorConstruction*);
|
||||
~Em5PrimaryGeneratorAction();
|
||||
|
||||
public:
|
||||
void SetDefaultKinematic();
|
||||
void GeneratePrimaries(G4Event*);
|
||||
static G4String GetPrimaryName() ;
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
Em5DetectorConstruction* Em5Detector;
|
||||
|
||||
static G4String thePrimaryParticleName;
|
||||
|
||||
Em5PrimaryGeneratorMessenger* gunMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
// 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: Em5PrimaryGeneratorMessenger.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5PrimaryGeneratorMessenger_h
|
||||
#define Em5PrimaryGeneratorMessenger_h 1
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em5PrimaryGeneratorAction;
|
||||
class G4UIcmdWithoutParameter;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5PrimaryGeneratorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
Em5PrimaryGeneratorMessenger(Em5PrimaryGeneratorAction*);
|
||||
~Em5PrimaryGeneratorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em5PrimaryGeneratorAction* Em5Action;
|
||||
G4UIcmdWithoutParameter* DefaultCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
// 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: Em5RunAction.hh,v 1.1.4.1 1999/12/07 20:47:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5RunAction_h
|
||||
#define Em5RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
#include <iostream.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5RunMessenger;
|
||||
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
|
||||
class G4Run;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
Em5RunAction();
|
||||
~Em5RunAction();
|
||||
|
||||
public:
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
void EndOfRunAction(const G4Run*);
|
||||
|
||||
void CountEvent();
|
||||
void CountParticles(G4double,G4double);
|
||||
void AddEP(G4double,G4double);
|
||||
void AddEdeps(G4double Eabs);
|
||||
void AddTrackLength(G4double tlabs);
|
||||
void AddnStepsCharged(G4double ns);
|
||||
void AddnStepsNeutral(G4double ns);
|
||||
|
||||
void AddTrRef(G4double tr,G4double ref);
|
||||
|
||||
void FillEn(G4double En);
|
||||
void FillTh(G4double Th);
|
||||
void FillThBack(G4double Th);
|
||||
void FillR(G4double R);
|
||||
void FillTt(G4double Tt);
|
||||
void FillTb(G4double Tt);
|
||||
void FillTsec(G4double T);
|
||||
void FillGammaSpectrum(G4double E);
|
||||
void FillNbOfSteps(G4double nstep);
|
||||
void Fillvertexz(G4double z);
|
||||
|
||||
void SethistName(G4String name) ;
|
||||
|
||||
void SetnbinStep(G4int nbin);
|
||||
void SetSteplow(G4double Slow);
|
||||
void SetStephigh(G4double Shigh);
|
||||
|
||||
void SetnbinEn(G4int nbin);
|
||||
void SetEnlow(G4double Elow);
|
||||
void SetEnhigh(G4double Enhigh);
|
||||
|
||||
void SetnbinTt(G4int nbin);
|
||||
void SetTtlow(G4double Ttlow);
|
||||
void SetTthigh(G4double Tthigh);
|
||||
|
||||
void SetnbinTb(G4int nbin);
|
||||
void SetTblow(G4double Tblow);
|
||||
void SetTbhigh(G4double Tbhigh);
|
||||
|
||||
void SetnbinTsec(G4int nbin);
|
||||
void SetTseclow(G4double Tlow);
|
||||
void SetTsechigh(G4double Thigh);
|
||||
|
||||
void SetnbinTh(G4int nbin);
|
||||
void SetThlow(G4double Thlow);
|
||||
void SetThhigh(G4double Thhigh);
|
||||
|
||||
void SetnbinThBack(G4int nbin);
|
||||
void SetThlowBack(G4double Thlow);
|
||||
void SetThhighBack(G4double Thhigh);
|
||||
|
||||
void SetnbinR(G4int nbin);
|
||||
void SetRlow(G4double Rlow);
|
||||
void SetRhigh(G4double Rhigh);
|
||||
|
||||
void SetnbinGamma(G4int nbin);
|
||||
void SetElowGamma(G4double Elow);
|
||||
void SetEhighGamma(G4double Ehigh);
|
||||
|
||||
void Setnbinzvertex(G4int nbin);
|
||||
void Setzlow(G4double z);
|
||||
void Setzhigh(G4double z);
|
||||
|
||||
void SetRndmFreq(G4int val) {saveRndm = val;}
|
||||
G4int GetRndmFreq() {return saveRndm;}
|
||||
|
||||
private:
|
||||
|
||||
void bookHisto();
|
||||
|
||||
private:
|
||||
|
||||
G4String histName ;
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram *histo1, *histo2, *histo3, *histo4, *histo5 ;
|
||||
HepHistogram *histo6, *histo7, *histo8, *histo9, *histo10;
|
||||
|
||||
G4double EnergySumAbs,EnergySquareSumAbs;
|
||||
G4double tlSumAbs,tlsquareSumAbs;
|
||||
G4double nStepSumCharged,nStepSum2Charged ;
|
||||
G4double nStepSumNeutral,nStepSum2Neutral ;
|
||||
G4double TotNbofEvents;
|
||||
G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral;
|
||||
G4double Selectron,Spositron;
|
||||
|
||||
G4double Transmitted,Reflected ;
|
||||
|
||||
G4double entryStep,underStep,overStep,distStep[200];
|
||||
G4double Steplow,Stephigh,dStep;
|
||||
G4int nbinStep;
|
||||
G4double entryEn,underEn,overEn,distEn[200];
|
||||
G4double Enlow,Enhigh,dEn;
|
||||
G4int nbinEn;
|
||||
G4double entryTt,underTt,overTt,distTt[200];
|
||||
G4double Ttlow,Tthigh,dTt;
|
||||
G4int nbinTt;
|
||||
G4double Ttmean,Tt2mean;
|
||||
G4double entryTb,underTb,overTb,distTb[200];
|
||||
G4double Tblow,Tbhigh,dTb;
|
||||
G4int nbinTb;
|
||||
G4double Tbmean,Tb2mean;
|
||||
G4double entryTsec,underTsec,overTsec,distTsec[200];
|
||||
G4double Tseclow,Tsechigh,dTsec;
|
||||
G4int nbinTsec;
|
||||
G4double entryTh,underTh,overTh,distTh[200];
|
||||
G4double Thlow,Thhigh,dTh;
|
||||
G4int nbinTh;
|
||||
G4double entryThback,underThback,overThback,distThback[200];
|
||||
G4double Thlowback,Thhighback,dThback;
|
||||
G4int nbinThback;
|
||||
G4double entryR ,underR ,overR ,distR[200];
|
||||
G4double Rlow,Rhigh,dR;
|
||||
G4int nbinR;
|
||||
G4double Rmean,R2mean;
|
||||
G4double entryGamma,underGamma,overGamma,distGamma[200];
|
||||
G4double ElowGamma,EhighGamma,dEGamma;
|
||||
G4int nbinGamma ;
|
||||
G4double entryvertexz,undervertexz,oververtexz,distvertexz[200];
|
||||
G4double zlow,zhigh,dz;
|
||||
G4int nbinvertexz;
|
||||
|
||||
Em5RunMessenger* runMessenger;
|
||||
G4int saveRndm;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
|
||||
// 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: Em5RunMessenger.hh,v 1.1.4.1 1999/12/07 20:47:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5RunMessenger_h
|
||||
#define Em5RunMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5RunAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithADouble;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5RunMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
Em5RunMessenger(Em5RunAction* );
|
||||
~Em5RunMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* ,G4String );
|
||||
|
||||
private:
|
||||
|
||||
Em5RunAction* runAction;
|
||||
|
||||
G4UIdirectory* plotDir;
|
||||
|
||||
G4UIcmdWithAString* sethistNameCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinStepCmd;
|
||||
G4UIcmdWithADouble* setSteplowCmd;
|
||||
G4UIcmdWithADouble* setStephighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinEnCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEnlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEnhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinGammaCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setElowGammaCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEhighGammaCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTtCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTtlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTthighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTbCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTblowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTbhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTsecCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTseclowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTsechighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinRCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setRlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setRhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinThCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinThbackCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThlowbackCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThhighbackCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinzvertexCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setzlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setzhighCmd;
|
||||
|
||||
G4UIdirectory* RndmDir;
|
||||
G4UIcmdWithAnInteger* RndmSaveCmd;
|
||||
G4UIcmdWithAString* RndmReadCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
// 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: Em5StepCut.hh,v 1.1.4.1 1999/12/07 20:47:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5StepCut_h
|
||||
#define Em5StepCut_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5StepCut : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
Em5StepCut(const G4String& processName ="UserStepCut" );
|
||||
Em5StepCut(Em5StepCut &);
|
||||
|
||||
~Em5StepCut();
|
||||
|
||||
G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
|
||||
|
||||
void SetMaxStep(G4double);
|
||||
|
||||
protected:
|
||||
|
||||
// it is not needed here !
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
Em5StepCut& operator=(const Em5StepCut &right);
|
||||
|
||||
private:
|
||||
|
||||
G4double MaxChargedStep;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// inlined function members implementation
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double Em5StepCut::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
G4double ProposedStep = DBL_MAX;
|
||||
|
||||
if((MaxChargedStep > 0.) &&
|
||||
(aTrack.GetVolume() != NULL) &&
|
||||
(aTrack.GetVolume()->GetName() == "Absorber") &&
|
||||
(aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge() != 0.))
|
||||
ProposedStep = MaxChargedStep;
|
||||
|
||||
return ProposedStep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4VParticleChange* Em5StepCut::PostStepDoIt(
|
||||
const G4Track& aTrack,
|
||||
const G4Step&
|
||||
)
|
||||
{
|
||||
// do nothing
|
||||
aParticleChange.Initialize(aTrack);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double Em5StepCut::GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
return 0.;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
// 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: Em5SteppingAction.hh,v 1.1.4.1 1999/12/07 20:47:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5SteppingAction_h
|
||||
#define Em5SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em5DetectorConstruction;
|
||||
class Em5RunAction;
|
||||
class Em5EventAction;
|
||||
class Em5SteppingMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
Em5SteppingAction(Em5DetectorConstruction*, Em5EventAction*,
|
||||
Em5RunAction* );
|
||||
~Em5SteppingAction();
|
||||
|
||||
void UserSteppingAction(const G4Step*);
|
||||
|
||||
private:
|
||||
Em5DetectorConstruction* detector;
|
||||
Em5EventAction* eventaction;
|
||||
Em5RunAction* runaction;
|
||||
Em5SteppingMessenger* steppingMessenger;
|
||||
|
||||
G4int IDnow,IDold;
|
||||
G4int evnoold ;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,47 @@
|
||||
// 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: Em5SteppingMessenger.hh,v 1.1.4.1 1999/12/07 20:47:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5SteppingMessenger_h
|
||||
#define Em5SteppingMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5SteppingAction;
|
||||
class G4UIdirectory;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5SteppingMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
Em5SteppingMessenger(Em5SteppingAction* );
|
||||
~Em5SteppingMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* ,G4String );
|
||||
|
||||
private:
|
||||
|
||||
Em5SteppingAction* steppingAction;
|
||||
|
||||
G4UIdirectory* steppingDir;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// 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: Em5VisManager.hh,v 1.1.4.1 1999/12/07 20:47:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// Example Visualization Manager implementing virtual function
|
||||
// RegisterGraphicsSystems. Exploits C-pre-processor variables
|
||||
// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if
|
||||
// environment variables of the same name are set.
|
||||
|
||||
// So all you have to do is set environment variables and compile and
|
||||
// instantiate this in your main().
|
||||
|
||||
// Alternatively, you can implement an empty function here and just
|
||||
// register the systems you want in your main(), e.g.:
|
||||
// G4VisManager* myVisManager = new MyVisManager;
|
||||
// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em5VisManager_h
|
||||
#define Em5VisManager_h 1
|
||||
|
||||
#include "G4VisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em5VisManager: public G4VisManager {
|
||||
|
||||
public:
|
||||
|
||||
Em5VisManager ();
|
||||
|
||||
private:
|
||||
|
||||
void RegisterGraphicsSystems ();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user