Import Geant4 6.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:56:29 +02:00
parent 1d812b78b1
commit e083ffb441
1415 changed files with 111223 additions and 21207 deletions
@@ -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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// ************************************
// * *
// * PurgMagAnalysisManager.hh *
// * *
// ************************************
//
// $Id: PurgMagAnalysisManager.hh,v 1.2 2004/06/18 09:17:43 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
#ifdef G4ANALYSIS_USE
#ifndef G4PROCESSTESTANALYSIS_HH
#define G4PROCESSTESTANALYSIS_HH
#include "globals.hh"
#include <vector>
#include "G4ThreeVector.hh"
#include "AIDA/IHistogram1D.h"
#include "AIDA/IHistogram2D.h"
#include "AIDA/IAnalysisFactory.h"
namespace AIDA
{
class ITree;
class IHistogramFactory;
class IAnalysisFactory;
class ITupleFactory;
class ITuple;
class ITreeFactory;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagAnalysisManager
{
public:
~PurgMagAnalysisManager();
void book();
void finish();
static PurgMagAnalysisManager* getInstance();
void fill_Tuple_Electrons(G4double,G4double,G4double,G4double,G4double,G4double,G4double);
void fill_Tuple_Gamma(G4double,G4double,G4double,G4double,G4double,G4double,G4double);
void fill_Tuple_Positrons(G4double,G4double,G4double,G4double,G4double,G4double,G4double);
private:
G4double ex,ey,ez,ee,epx,epy,epz,gx,gy,gz,ge,gpx,gpy,gpz,px,py,pz,pe,ppx,ppy,ppz;
static PurgMagAnalysisManager* instance;
private:
PurgMagAnalysisManager();
private:
AIDA::IAnalysisFactory* aFact;
AIDA::ITree* theTree;
AIDA::IHistogramFactory *histFact;
AIDA::ITupleFactory *tupFact;
AIDA::ITreeFactory *treeFact;
AIDA::ITuple *ntuple1;
AIDA::ITuple *ntuple2;
AIDA::ITuple *ntuple3;
};
#endif
#endif
@@ -0,0 +1,149 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// *****************************************
// * *
// * PurgMagDetectorConstruction.hh *
// * *
// *****************************************
//
// $Id: PurgMagDetectorConstruction.hh,v 1.2 2004/06/18 09:17:44 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef PurgMagDetectorConstruction_h
#define PurgMagDetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
#include "G4ThreeVector.hh"
#include "G4RotationMatrix.hh"
class G4Box;
class G4Trd;
class G4LogicalVolume;
class G4VPhysicalVolume;
class G4Material;
class G4UniformMagField;
class PurgMagTabulatedField3D;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagDetectorConstruction : public G4VUserDetectorConstruction
{
public:
PurgMagDetectorConstruction();
~PurgMagDetectorConstruction();
public:
G4VPhysicalVolume* Construct();
public:
void PrintDetectorParameters();
G4double GetWorldSizeXY() {return WorldSizeXY;};
G4double GetWorldSizeZ() {return WorldSizeZ;};
G4double GetMeasureVolumeSizeXY() {return MeasureVolumeSizeXY;};
G4double GetMeasureVolumeSizeZ() {return MeasureVolumeSizeZ;};
G4double GetGapSizeX1() {return GapSizeX1;};
G4double GetGapSizeX2() {return GapSizeX2;};
G4double GetGapSizeY1() {return GapSizeY1;};
G4double GetGapSizeY2() {return GapSizeY2;};
G4double GetGapSizeZ() {return GapSizeZ;};
G4Material* GetWorldMaterial() {return WorldMaterial;};
G4Material* GetGapMaterial() {return GapMaterial;};
const G4VPhysicalVolume* GetWorld() {return physiWorld;};
const G4VPhysicalVolume* GetMeasureVolume() {return physiMeasureVolume;};
const G4VPhysicalVolume* GetGap1() {return physiGap1;};
const G4VPhysicalVolume* GetGap2() {return physiGap2;};
private:
G4double WorldSizeXY;
G4double WorldSizeZ;
G4double MeasureVolumeSizeXY;
G4double MeasureVolumeSizeZ;
G4double MeasureVolumePosition;
G4double GapSizeX1;
G4double GapSizeX2;
G4double GapSizeY1;
G4double GapSizeY2;
G4double GapSizeZ;
G4double Gap1PosX;
G4double Gap1PosY;
G4double Gap1PosZ;
G4double Gap2PosX;
G4double Gap2PosY;
G4double Gap2PosZ;
G4double SSD;
G4double zOffset;
G4VPhysicalVolume* physiWorld;
G4LogicalVolume* logicWorld;
G4Box* solidWorld;
G4VPhysicalVolume* physiGap1;
G4LogicalVolume* logicGap1;
G4Trd* solidGap1;
G4VPhysicalVolume* physiGap2;
G4LogicalVolume* logicGap2;
G4Trd* solidGap2;
G4VPhysicalVolume* physiMeasureVolume;
G4LogicalVolume* logicMeasureVolume;
G4Box* solidMeasureVolume;
G4Material* WorldMaterial;
G4Material* GapMaterial;
private:
void DefineMaterials();
G4VPhysicalVolume* ConstructCalorimeter();
};
#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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// ********************************
// * *
// * PurgMagEventAction.hh *
// * *
// ********************************
//
// $Id: PurgMagEventAction.hh,v 1.2 2004/06/18 09:17:45 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef PurgMagEventAction_h
#define PurgMagEventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
class PurgMagRunAction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagEventAction : public G4UserEventAction
{
public:
PurgMagEventAction(PurgMagRunAction*);
~PurgMagEventAction();
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
void SetDrawFlag (G4String val) {drawFlag = val;};
void SetPrintModulo(G4int val) {printModulo = val;};
private:
PurgMagRunAction* PurgMagRun;
G4String drawFlag;
G4int printModulo;
};
#endif
@@ -0,0 +1,106 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// ********************************
// * *
// * PurgMagPhysicsList.hh *
// * *
// ********************************
//
//
// $Id: PurgMagPhysicsList.hh,v 1.2 2004/06/18 09:17:46 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef PurgMagPhysicsList_h
#define PurgMagPhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4GammaConversion;
class G4ComptonScattering;
class G4PhotoElectricEffect;
class G4eIonisation;
class G4eBremsstrahlung;
class PurgMagPhysicsList: public G4VUserPhysicsList
{
public:
PurgMagPhysicsList();
~PurgMagPhysicsList();
protected:
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
void SetCuts();
public:
// Set Cuts
void SetGammaCut(G4double);
void SetElectronCut(G4double);
void SetPositronCut(G4double);
void SetProtonCut(G4double);
void SetGammaLowLimit(G4double);
void SetElectronLowLimit(G4double);
void SetPositronLowLimit(G4double);
void SetProtonLowLimit(G4double);
void SetGEPLowLimit(G4double);
void SetGELowLimit(G4double);
private:
G4double cutForGamma;
G4double cutForElectron;
G4double cutForPositron;
G4double cutForProton;
protected:
// these methods Construct particles
void ConstructBosons();
void ConstructLeptons();
void ConstructBarions();
protected:
// these methods Construct physics processes and register them
void ConstructGeneral();
void ConstructEM();
private:
};
#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. *
// ********************************************************************
//
// ********************************************************************
// Code developed by:
// S.Larsson
//
// ********************************************
// * *
// * PurgMagPrimaryGeneratorAction.hh *
// * *
// ********************************************
//
// $Id: PurgMagPrimaryGeneratorAction.hh,v 1.2 2004/06/18 09:17:47 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef PurgMagPrimaryGeneratorAction_h
#define PurgMagPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4ParticleGun;
class G4Event;
class PurgMagDetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
PurgMagPrimaryGeneratorAction(PurgMagDetectorConstruction*);
~PurgMagPrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event*);
void SetRndmVertex(G4bool val) { rndmVertex = val;}
private:
G4ParticleGun* particleGun;
PurgMagDetectorConstruction* PurgMagDetector;
G4bool rndmVertex;
};
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// ******************************
// * *
// * PurgMagRunAction.hh *
// * *
// ******************************
//
// $Id: PurgMagRunAction.hh,v 1.2 2004/06/18 09:17:49 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
#ifndef PurgMagRunAction_h
#define PurgMagRunAction_h 1
#include "PurgMagDetectorConstruction.hh"
#include "G4UserRunAction.hh"
#include "globals.hh"
#include <iostream>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4Run;
class PurgMagRunAction : public G4UserRunAction
{
public:
PurgMagRunAction(PurgMagDetectorConstruction*);
~PurgMagRunAction();
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
void SetRndmFreq(G4int val) {saveRndm = val;}
G4int GetRndmFreq() {return saveRndm;}
private:
PurgMagDetectorConstruction* Detector;
G4int saveRndm;
};
#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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// ***********************************
// * *
// * PurgMagSteppingAction.hh *
// * *
// ***********************************
//
// $Id: PurgMagSteppingAction.hh,v 1.2 2004/06/18 09:17:50 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef PurgMagSteppingAction_h
#define PurgMagSteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "G4VPVParameterisation.hh"
#include "G4PVParameterised.hh"
#include "G4Tubs.hh"
class PurgMagRunAction;
class PurgMagDetectorConstruction;
class PurgMagAnalysisManager;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagSteppingAction : public G4UserSteppingAction
{
public:
PurgMagSteppingAction(PurgMagRunAction*,PurgMagDetectorConstruction*);
~PurgMagSteppingAction();
void UserSteppingAction(const G4Step*);
private:
PurgMagRunAction* PurgMagRun;
PurgMagDetectorConstruction* Detector;
};
#endif
@@ -0,0 +1,57 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// Code developed by:
// S.Larsson
//
// ************************************
// * *
// * PurgMagSteppingVerbose.hh *
// * *
// ************************************
//
// $Id: PurgMagSteppingVerbose.hh,v 1.2 2004/06/18 09:17:51 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
class PurgMagSteppingVerbose;
#ifndef PurgMagSteppingVerbose_h
#define PurgMagSteppingVerbose_h 1
#include "G4SteppingVerbose.hh"
class PurgMagSteppingVerbose : public G4SteppingVerbose {
public:
//Constructor/Destructor
PurgMagSteppingVerbose();
~PurgMagSteppingVerbose();
void StepInfo();
void TrackingStarted();
};
#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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson and J. Generowicz.
//
// *************************************
// * *
// * PurgMagTabulatedField3D.hh *
// * *
// *************************************
//
// $Id: PurgMagTabulatedField3D.hh,v 1.2 2004/06/18 09:17:52 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
#include "globals.hh"
#include "G4MagneticField.hh"
#include "G4ios.hh"
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
class PurgMagTabulatedField3D
#ifndef STANDALONE
: public G4MagneticField
#endif
{
// Storage space for the table
vector< vector< vector< double > > > xField;
vector< vector< vector< double > > > yField;
vector< vector< vector< double > > > zField;
// The dimensions of the table
int nx,ny,nz;
// The physical limits of the defined region
double minx, maxx, miny, maxy, minz, maxz;
// The physical extent of the defined region
double dx, dy, dz;
double fZoffset;
bool invertX, invertY, invertZ;
public:
PurgMagTabulatedField3D(const char* filename, double zOffset );
void GetFieldValue( const double Point[4],
double *Bfield ) const;
};
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// **********************************
// * *
// * PurgMagTrackingAction.hh *
// * *
// **********************************
//
// $Id: PurgMagTrackingAction.hh,v 1.2 2004/06/18 09:17:53 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
#ifndef PurgMagTrackingAction_h
#define PurgMagTrackingAction_h 1
#include "G4UserTrackingAction.hh"
class PurgMagRunAction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagTrackingAction : public G4UserTrackingAction
{
public:
PurgMagTrackingAction(PurgMagRunAction*);
~PurgMagTrackingAction() {};
void PostUserTrackingAction(const G4Track*);
private:
PurgMagRunAction* PurgMagRun;
};
#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. *
// ********************************************************************
//
// Code developed by:
// S.Larsson
//
// *******************************
// * *
// * PurgMagVisManager.hh *
// * *
// *******************************
//
// $Id: PurgMagVisManager.hh,v 1.2 2004/06/18 09:17:54 gunter Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
// 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 PurgMagVisManager_h
#define PurgMagVisManager_h 1
#include "G4VisManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class PurgMagVisManager: public G4VisManager {
public:
PurgMagVisManager ();
private:
void RegisterGraphicsSystems ();
};
#endif