Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -0,0 +1,162 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// DetectorConstruction header
// --------------------------------------------------------------
#ifndef DMXDetectorConstruction_h
#define DMXDetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4VPhysicalVolume;
class G4LogicalVolume;
class G4Material;
class G4UserLimits;
class DMXScintSD;
class DMXPmtSD;
class DMXDetectorConstruction : public G4VUserDetectorConstruction
{
public:
DMXDetectorConstruction();
~DMXDetectorConstruction();
public:
G4VPhysicalVolume* Construct();
// methods for UserLimits
void UseUserLimits(G4bool value);
G4bool IsUseUserLimits() { return fUseUserLimits; }
G4double GetMaxTime() const { return theMaxTimeCuts; }
G4double GetMaxStepSize() const { return theMaxStepSize; }
G4double GetRoomTime() const { return theRoomTimeCut; }
void SetMaxTime(G4double value);
void SetMaxStepSize(G4double value);
void SetRoomTime(G4double value);
private:
void DefineMaterials();
G4bool fUseUserLimits;
G4UserLimits* theUserLimits;
G4double theMaxTimeCuts;
G4double theMaxStepSize;
G4double theRoomTimeCut;
G4Material* world_mat; // materials used
G4Material* lab_mat;
G4Material* jacket_mat;
G4Material* vacuum_mat;
G4Material* vessel_mat;
G4Material* detector_mat;
G4Material* liqPhase_mat;
G4Material* CuShield_mat;
G4Material* alpha_mat;
G4Material* americium_mat;
G4Material* ring_mat;
G4Material* mirror_mat;
G4Material* grid_mat;
G4Material* pmt_mat;
G4Material* window_mat;
G4Material* phcath_mat;
G4double worldRadius; // sizes
G4double worldHeight;
G4double sourceZ;
G4double sourceZ2;
G4LogicalVolume* world_log; // pointers
G4VPhysicalVolume* world_phys;
G4LogicalVolume* lab_log;
G4VPhysicalVolume* lab_phys;
G4LogicalVolume* jacket_log;
G4VPhysicalVolume* jacket_phys;
G4LogicalVolume* vacuum_log;
G4VPhysicalVolume* vacuum_phys;
G4LogicalVolume* vessel_log;
G4VPhysicalVolume* vessel_phys;
G4LogicalVolume* detector_log;
G4VPhysicalVolume* detector_phys;
G4LogicalVolume* CuShield_log;
G4VPhysicalVolume* CuShield_phys;
G4LogicalVolume* liqPhase_log;
G4VPhysicalVolume* liqPhase_phys;
G4LogicalVolume* alpha_log;
G4VPhysicalVolume* alpha_phys;
/*
G4LogicalVolume* recess_log;
G4VPhysicalVolume* recess_phys;
*/
G4LogicalVolume* americium_log;
G4VPhysicalVolume* americium_phys;
G4LogicalVolume* ring_log;
G4VPhysicalVolume* ring_phys_gas[1];
G4VPhysicalVolume* ring_phys_liq[5];
// G4VPhysicalVolume* ring_phys[8];
G4LogicalVolume* mirror_log;
G4VPhysicalVolume* mirror_phys;
G4LogicalVolume* grid1_log;
G4VPhysicalVolume* grid1_phys;
G4LogicalVolume* grid2_log;
G4VPhysicalVolume* grid2_phys;
G4LogicalVolume* pmt_log;
G4VPhysicalVolume* pmt_phys;
/*
G4LogicalVolume* window_log;
G4VPhysicalVolume* window_phys;
*/
G4LogicalVolume* phcath_log;
G4VPhysicalVolume* phcath_phys;
DMXScintSD* LXeSD; //pointer to sensitive detectors
DMXPmtSD* pmtSD;
};
#endif
@@ -0,0 +1,119 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// EventAction header
// --------------------------------------------------------------
#ifndef DMXEventAction_h
#define DMXEventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
#include "G4ios.hh"
#include "DMXScintHit.hh"
#include "DMXPmtHit.hh"
class DMXEventActionMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXEventAction : public G4UserEventAction {
public:
DMXEventAction();
virtual ~DMXEventAction();
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
private:
void writeScintHitsToFile(void);
void writePmtHitsToFile(const DMXPmtHitsCollection*);
void drawTracks(const G4Event*);
public:
void SetDrawTrksFlag (G4String val) {drawTrksFlag = val;};
G4String GetDrawTrksFlag() {return drawTrksFlag;};
void SetDrawColsFlag (G4String val) {drawColsFlag = val;};
G4String GetDrawColsFlag() {return drawColsFlag;};
void SetDrawHitsFlag (G4int val) {drawHitsFlag = val;};
void SetSavePmtFlag (G4int val) {savePmtFlag = val;};
void SetSaveHitsFlag (G4int val) {saveHitsFlag = val;};
void SetPrintModulo (G4int val) {printModulo = val;};
private:
G4int event_id;
// hits collections
G4int scintillatorCollID;
G4int pmtCollID;
G4int S_hits;
G4int P_hits;
// event summary
G4double aveTimePmtHits;
G4double totEnergy;
G4double totEnergyGammas;
G4double totEnergyNeutrons;
G4double hitEnergy;
G4double firstLXeHitTime;
G4double particleEnergy;
G4String particleName;
G4String firstParticleName;
G4bool gamma_ev;
G4bool neutron_ev;
G4bool positron_ev;
G4bool electron_ev;
G4bool proton_ev;
G4bool other_ev;
G4bool start_gamma;
G4bool start_neutron;
// messenger
G4String drawTrksFlag;
G4String drawColsFlag;
G4int drawHitsFlag;
G4int savePmtFlag;
G4int saveHitsFlag;
G4int printModulo;
DMXEventActionMessenger* eventMessenger;
};
#endif
@@ -0,0 +1,74 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// EventActionMessenger header
// --------------------------------------------------------------
#ifndef DMXEventActionMessenger_h
#define DMXEventActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class DMXEventAction;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4UIcmdWithABool;
class DMXEventActionMessenger: public G4UImessenger {
public:
DMXEventActionMessenger(DMXEventAction*);
~DMXEventActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DMXEventAction* eventAction;
G4UIdirectory* dmxDirectory;
G4UIdirectory* drawDirectory;
G4UIcmdWithAString* DrawTrksCmd;
G4UIcmdWithAString* DrawColsCmd;
G4UIcmdWithABool* DrawHitsCmd;
G4UIcmdWithABool* SavePmtCmd;
G4UIcmdWithABool* SaveHitsCmd;
G4UIcmdWithAnInteger* PrintCmd;
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// MaxTimeCuts header
// --------------------------------------------------------------
#ifndef DMXMaxTimeCuts_h
#define DMXMaxTimeCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "DMXSpecialCuts.hh"
class DMXMaxTimeCuts : public DMXSpecialCuts
{
public:
DMXMaxTimeCuts(const G4String& processName ="DMXMaxTimeCuts" );
virtual ~DMXMaxTimeCuts();
// PostStep GPIL
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
private:
// hide assignment operator as private
DMXMaxTimeCuts(DMXMaxTimeCuts&);
DMXMaxTimeCuts& operator=(const DMXMaxTimeCuts& right);
};
#endif
@@ -0,0 +1,132 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// ParticleSource header
// --------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////
// This particle source is a shortened version of G4GeneralParticleSource by
// C Ferguson, F Lei & P Truscott (University of Southampton / DERA), with
// some minor modifications.
//////////////////////////////////////////////////////////////////////////////
#ifndef DMXParticleSource_h
#define DMXParticleSource_h 1
#include "G4VPrimaryGenerator.hh"
#include "G4Navigator.hh"
#include "G4ParticleMomentum.hh"
#include "G4ParticleDefinition.hh"
#include "DMXParticleSourceMessenger.hh"
class DMXParticleSource : public G4VPrimaryGenerator {
public:
DMXParticleSource ();
~DMXParticleSource ();
void GeneratePrimaryVertex(G4Event *evt);
public:
// position distribution
void SetPosDisType(G4String);
void SetPosDisShape(G4String);
void SetCentreCoords(G4ThreeVector);
void SetHalfZ(G4double);
void SetRadius(G4double);
void GeneratePointSource();
void GeneratePointsInVolume();
G4bool IsSourceConfined();
void ConfineSourceToVolume(G4String);
// angular distribution
void SetAngDistType(G4String);
void SetParticleMomentumDirection(G4ParticleMomentum);
void GenerateIsotropicFlux();
// energy distribution
void SetEnergyDisType(G4String);
void SetMonoEnergy(G4double);
void GenerateMonoEnergetic();
// verbosity
void SetVerbosity(G4int);
// particle properties
void SetParticleDefinition(G4ParticleDefinition * aParticleDefinition);
inline void SetParticleCharge(G4double aCharge)
{ particle_charge = aCharge; }
private:
// position distribution
G4String SourcePosType;
G4String Shape;
G4double halfz;
G4double Radius;
G4ThreeVector CentreCoords;
G4bool Confine;
G4String VolName;
G4String AngDistType;
G4double MinTheta, MaxTheta, MinPhi, MaxPhi;
G4double Theta, Phi;
G4String EnergyDisType;
G4double MonoEnergy;
// particle properties
G4int NumberOfParticlesToBeGenerated;
G4ParticleDefinition* particle_definition;
G4ParticleMomentum particle_momentum_direction;
G4double particle_energy;
G4double particle_charge;
G4ThreeVector particle_position;
G4double particle_time;
G4ThreeVector particle_polarization;
// Verbose
G4int verbosityLevel;
private:
DMXParticleSourceMessenger *theMessenger;
G4Navigator *gNavigator;
};
#endif
@@ -0,0 +1,108 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// ParticleSourceMessenger header
// --------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////
// This particle source is a shortened version of G4GeneralParticleSource by
// C Ferguson, F Lei & P Truscott (University of Southampton / DERA), with
// some minor modifications.
//////////////////////////////////////////////////////////////////////////////
#ifndef DMXParticleSourceMessenger_h
#define DMXParticleSourceMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class DMXParticleSource;
class G4ParticleTable;
class G4UIcommand;
class G4UIdirectory;
class G4UIcmdWithoutParameter;
class G4UIcmdWithAString;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWith3Vector;
class G4UIcmdWith3VectorAndUnit;
class G4UIcmdWithAnInteger;
class G4UIcmdWithADouble;
class G4UIcmdWithABool;
class G4UIcmdWithoutParameter;
class DMXParticleSourceMessenger: public G4UImessenger {
public:
DMXParticleSourceMessenger(DMXParticleSource *fPtclGun);
~DMXParticleSourceMessenger();
void SetNewValue(G4UIcommand *command, G4String newValues);
private:
DMXParticleSource *fParticleGun;
G4ParticleTable *particleTable;
private:
G4UIdirectory *gunDirectory;
G4UIcmdWithAString *typeCmd;
G4UIcmdWithAString *shapeCmd;
G4UIcmdWith3VectorAndUnit *centreCmd;
G4UIcmdWithADoubleAndUnit *halfzCmd;
G4UIcmdWithADoubleAndUnit *radiusCmd;
G4UIcmdWithAString *confineCmd;
G4UIcmdWithAString *angtypeCmd;
G4UIcmdWithAString *energytypeCmd;
G4UIcmdWithAnInteger *verbosityCmd;
G4UIcommand *ionCmd;
G4UIcmdWithAString *particleCmd;
G4UIcmdWith3VectorAndUnit *positionCmd;
G4UIcmdWith3Vector *directionCmd;
G4UIcmdWithADoubleAndUnit *energyCmd;
G4UIcmdWithoutParameter *listCmd;
private:
G4bool fShootIon;
G4int fAtomicNumber;
G4int fAtomicMass;
G4int fIonCharge;
G4double fIonExciteEnergy;
};
#endif
@@ -0,0 +1,104 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// PhysicsList header
// --------------------------------------------------------------
#ifndef DMXPhysicsList_h
#define DMXPhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXPhysicsList: public G4VUserPhysicsList
{
public:
DMXPhysicsList();
virtual ~DMXPhysicsList();
public:
virtual void SetCuts();
protected:
// Construct particle and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
// these methods Construct physics processes and register them
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void ConstructHad();
virtual void ConstructOp();
/*
// these methods Construct all particles in each category
virtual void ConstructAllBosons();
virtual void ConstructAllLeptons();
virtual void ConstructAllMesons();
virtual void ConstructAllBaryons();
virtual void ConstructAllIons();
virtual void ConstructAllShortLiveds();
*/
virtual void AddTransportation();
private:
G4int VerboseLevel;
G4int OpVerbLevel;
G4double cutForGamma;
G4double cutForElectron;
G4double cutForPositron;
G4double cutForProton;
G4double cutForAlpha;
G4double cutForGenericIon;
G4double cutForOpticalPhoton;
// these methods Construct particles
void ConstructMyBosons();
void ConstructMyLeptons();
void ConstructMyMesons();
void ConstructMyBaryons();
void ConstructMyIons();
void ConstructMyShortLiveds();
};
#endif
@@ -0,0 +1,100 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// PmtHit (sensitive detector) header
// --------------------------------------------------------------
#ifndef DMXPmtHit_h
#define DMXPmtHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
class DMXPmtHit : public G4VHit
{
public:
DMXPmtHit();
~DMXPmtHit();
DMXPmtHit(const DMXPmtHit&);
const DMXPmtHit& operator=(const DMXPmtHit&);
int operator==(const DMXPmtHit&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
void Draw();
void Print();
private:
G4ThreeVector pos;
G4double time;
public:
inline void SetPos(G4ThreeVector xyz) {pos=xyz;};
inline G4ThreeVector GetPos() const {return pos;};
inline void SetTime(G4double t) {time=t;};
inline G4double GetTime() const {return time;};
};
// vector collection of one type of hits
typedef G4THitsCollection<DMXPmtHit> DMXPmtHitsCollection;
extern G4Allocator<DMXPmtHit> DMXPmtHitsAllocator;
inline void* DMXPmtHit::operator new(size_t) {
void* aHit;
aHit = (void*) DMXPmtHitsAllocator.MallocSingle();
return aHit;
}
inline void DMXPmtHit::operator delete(void* aHit) {
DMXPmtHitsAllocator.FreeSingle((DMXPmtHit*) aHit);
}
#endif
@@ -0,0 +1,74 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// PmtSD (sensitive detector) header
// --------------------------------------------------------------
#ifndef DMXPmtSD_h
#define DMXPmtSD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
#include "DMXPmtHit.hh"
class DMXDetectorConstruction;
class G4Step;
class G4HCofThisEvent;
class DMXPmtSD : public G4VSensitiveDetector {
public:
DMXPmtSD(G4String, DMXDetectorConstruction*);
~DMXPmtSD();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
void clear();
void DrawAll();
void PrintAll();
private:
DMXPmtHitsCollection* pmtCollection;
DMXDetectorConstruction* DMXDetector;
G4int HitID;
};
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// PrimaryGeneratorAction header
// --------------------------------------------------------------
#ifndef DMXPrimaryGeneratorMessenger_h
#define DMXPrimaryGeneratorMessenger_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
class DMXParticleSource;
class G4Event;
class DMXPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
public:
DMXPrimaryGeneratorAction();
~DMXPrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event* anEvent);
private:
DMXParticleSource* particleGun;
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// RunAction header
// --------------------------------------------------------------
#ifndef DMXRunAction_h
#define DMXRunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXRunActionMessenger;
class G4Run;
class DMXRunAction : public G4UserRunAction
{
public:
DMXRunAction();
~DMXRunAction();
public:
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
void SetFilename(G4String val) { fileName = val; };
private:
G4String fileName; // log file name for the run
DMXRunActionMessenger* runMessenger;
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// RunActionMessenger header
// --------------------------------------------------------------
#ifndef DMXRunActionMessenger_h
#define DMXRunActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class DMXRunAction;
class G4UIcmdWithAString;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXRunActionMessenger: public G4UImessenger
{
public:
DMXRunActionMessenger(DMXRunAction*);
~DMXRunActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DMXRunAction* DMXRun;
G4UIcmdWithAString* FileCmd;
};
#endif
@@ -0,0 +1,114 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// DetectorConstruction header
// --------------------------------------------------------------
#ifndef DMXScintHit_h
#define DMXScintHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXScintHit : public G4VHit
{
public:
DMXScintHit();
~DMXScintHit();
DMXScintHit(const DMXScintHit&);
const DMXScintHit& operator=(const DMXScintHit&);
int operator==(const DMXScintHit&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
void Draw();
void Print();
public:
void SetEdep (G4double de) { edep = de; };
void SetPos (G4ThreeVector xyz) { pos = xyz; };
void SetParticle (G4String name) { particleName = name; };
void SetParticleEnergy (G4double e1) { particleEnergy = e1; };
void SetTime (G4double t2) { time = t2; };
G4double GetEdep() { return edep; };
G4ThreeVector GetPos() { return pos; };
G4String GetParticle() { return particleName;};
G4double GetParticleEnergy() { return particleEnergy;};
G4double GetTime() { return time; };
private:
G4double edep;
G4ThreeVector pos;
G4double time;
G4String particleName;
G4double particleEnergy;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
typedef G4THitsCollection<DMXScintHit> DMXScintHitsCollection;
extern G4Allocator<DMXScintHit> DMXScintHitAllocator;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void* DMXScintHit::operator new(size_t)
{
void* aHit;
aHit = (void*) DMXScintHitAllocator.MallocSingle();
return aHit;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void DMXScintHit::operator delete(void* aHit)
{
DMXScintHitAllocator.FreeSingle((DMXScintHit*) aHit);
}
#endif
@@ -0,0 +1,74 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// ScintSD (sensitive detector) header
// --------------------------------------------------------------
#ifndef DMXScintSD_h
#define DMXScintSD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
#include "DMXScintHit.hh"
class DMXDetectorConstruction;
class G4Step;
class G4HCofThisEvent;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXScintSD : public G4VSensitiveDetector
{
public:
DMXScintSD(G4String, DMXDetectorConstruction*);
~DMXScintSD();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*, G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
void clear();
void DrawAll();
void PrintAll();
private:
DMXScintHitsCollection* scintillatorCollection;
DMXDetectorConstruction* DMXDetector;
G4int HitID;
};
#endif
@@ -0,0 +1,101 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// SpecialCuts header
// --------------------------------------------------------------
#ifndef DMXSpecialCuts_h
#define DMXSpecialCuts_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "G4VProcess.hh"
class DMXSpecialCuts : public G4VProcess
{
public:
DMXSpecialCuts(const G4String& processName ="DMXSpecialCut" );
virtual ~DMXSpecialCuts();
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
DMXSpecialCuts& operator=(const DMXSpecialCuts& right){return *this;};
};
#endif
@@ -0,0 +1,75 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// StackingAction header
// --------------------------------------------------------------
#ifndef DMXStackingAction_H
#define DMXStackingAction_H 1
#include "globals.hh"
#include "G4UserStackingAction.hh"
class DMXStackingActionMessenger;
class G4Navigator;
class G4Track;
class DMXStackingAction : public G4UserStackingAction {
public:
DMXStackingAction();
virtual ~DMXStackingAction();
public:
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
virtual void NewStage();
virtual void PrepareNewEvent();
DMXStackingActionMessenger* theMessenger;
private:
G4bool killGammasFlag;
G4Navigator* gNavigator;
public:
inline void SetKillGammasFlag(G4bool val) {killGammasFlag = val;};
};
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// StackingActionMessenger header
// --------------------------------------------------------------
#ifndef protpStackingActionMessenger_h
#define DMXStackingActionMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class DMXStackingAction;
class G4UIcmdWithABool;
class DMXStackingActionMessenger: public G4UImessenger {
public:
DMXStackingActionMessenger(DMXStackingAction*);
~DMXStackingActionMessenger();
public:
void SetNewValue(G4UIcommand* , G4String);
private:
DMXStackingAction* DMXAction;
private:
G4UIcmdWithABool* KillGammasCmd;
};
#endif
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// SteppingAction header
// --------------------------------------------------------------
#ifndef DMXSteppingAction_h
#define DMXSteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "globals.hh"
class DMXSteppingActionMessenger;
class DMXEventAction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXSteppingAction : public G4UserSteppingAction
{
public:
DMXSteppingAction(DMXEventAction*);
virtual ~DMXSteppingAction();
virtual void UserSteppingAction(const G4Step*);
public:
void SetColourNeutronFlag(G4String val) {colourNeutronFlag =val;};
void SetColourGammaFlag(G4String val) {colourGammaFlag =val;};
void SetColourOpticalFlag(G4String val) {colourOpticalFlag =val;};
void SetColourChargedPlusFlag(G4String val) {colourChargedPlusFlag =val;};
void SetColourChargedMinusFlag(G4String val) {colourChargedMinusFlag=val;};
private:
G4String colourNeutronFlag;
G4String colourGammaFlag;
G4String colourOpticalFlag;
G4String colourChargedPlusFlag;
G4String colourChargedMinusFlag;
DMXSteppingActionMessenger* steppingMessenger;
DMXEventAction* evtAction; //pointer to event action
};
#endif
@@ -0,0 +1,70 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// SteppingActionMessenger header
// --------------------------------------------------------------
#ifndef DMXSteppingActionMessenger_h
#define DMXSteppingActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class DMXSteppingAction;
class G4UIdirectory;
class G4UIcmdWithAString;
class DMXSteppingActionMessenger: public G4UImessenger {
public:
DMXSteppingActionMessenger(DMXSteppingAction*);
~DMXSteppingActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DMXSteppingAction* steppingAction;
G4UIcmdWithAString* colourNeutronCmd;
G4UIcmdWithAString* colourGammaCmd;
G4UIcmdWithAString* colourOpticalCmd;
G4UIcmdWithAString* colourChargedPlusCmd;
G4UIcmdWithAString* colourChargedMinusCmd;
};
#endif
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * 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. *
// ********************************************************************
//
//
// --------------------------------------------------------------
// GEANT 4 - Underground Dark Matter Detector Advanced Example
//
// For information related to this code contact: Alex Howard
// e-mail: a.s.howard@ic.ac.uk
// --------------------------------------------------------------
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// (27th November 2001)
//
// VisManager header
// --------------------------------------------------------------
//....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* DMXVisManager = new MyVisManager;
// DMXVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef DMXVisManager_h
#define DMXVisManager_h 1
#ifdef G4VIS_USE
#include "G4VisManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class DMXVisManager: public G4VisManager {
public:
DMXVisManager ();
private:
void RegisterGraphicsSystems ();
};
#endif
#endif