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,105 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifdef G4ANALYSIS_USE
#ifndef LISAAnalysisManager_h
#define LISAAnalysisManager_h 1
#include "globals.hh"
#include <AIDA/AIDA.h>
namespace AIDA {
class IAnalysisFactory;
class ITree;
class IHistogramFactory;
class ITupleFactory;
class ITuple;
class IHistogram1D;
class IHistogram2D;
class IPlotter;
class IFitter;
class IFitResult;
class IFitData;
class IRangeSet;
class IFitParameterSettings;
class IFunctionFactory;
class IFunction;
class IFitFactory;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISAAnalysisManager {
public:
virtual ~LISAAnalysisManager();
void Init();
void Dispose();
// Run analysis
void bookRun(G4String);
void FinishRun();
void analyseRun
(G4int evt, G4int tm, G4double energy, G4int charge,
G4int in, G4int out, long seed1, long seed2);
// grab instance
static LISAAnalysisManager* getInstance();
private:
// private constructor for singleton
LISAAnalysisManager();
static LISAAnalysisManager* instance;
AIDA::IAnalysisFactory *af;
AIDA::ITreeFactory *tf;
AIDA::ITree *run_tree;
AIDA::ITupleFactory *run_tpf;
AIDA::ITuple *run_tuple;
};
#endif
#endif
@@ -0,0 +1,111 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISADetectorConstruction_h
#define LISADetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "G4UserLimits.hh"
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4MaterialPropertiesTable.hh"
#include "G4Element.hh"
#include "G4Isotope.hh"
#include "G4UnitsTable.hh"
#include "G4Box.hh"
#include "G4Tubs.hh"
#include "G4Sphere.hh"
#include "G4Cons.hh"
#include "G4Trap.hh"
#include "G4Torus.hh"
#include "G4Trd.hh"
#include "G4VSolid.hh"
#include "G4UnionSolid.hh"
#include "G4SubtractionSolid.hh"
#include "G4ThreeVector.hh"
#include "G4RotationMatrix.hh"
#include "G4Transform3D.hh"
#include "G4PVPlacement.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
#include "G4Region.hh"
#include "G4VisAttributes.hh"
#include "G4Colour.hh"
#include "G4ios.hh"
#include "globals.hh"
#include <math.h>
class LISADetectorConstruction : public G4VUserDetectorConstruction {
public:
LISADetectorConstruction();
~LISADetectorConstruction();
G4VPhysicalVolume* Construct();
private:
void ConstructMaterials();
G4VPhysicalVolume* ConstructDetector();
private:
// pointers to materials
G4Material *vacuum;
G4Material *Al6061;
G4Material *AlHoneycomb;
G4Material *Scell;
G4Material *MLImat;
G4Material *molybdenum;
G4Material *TiAlloy;
G4Material *gold;
G4Material *AuPt;
G4Material *CFRP;
G4Material *ULEglass;
G4Material *SHAPAL;
G4Material *SiC;
G4Material *foam;
};
#endif
@@ -0,0 +1,134 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
void LISADetectorConstruction::ConstructMaterials(void) {
// Elements
G4Element* elementH = new G4Element("Hydrogen", "H", 1., 1.0079*g/mole);
G4Element* elementC = new G4Element("Carbon", "C", 6., 12.011*g/mole);
G4Element* elementN = new G4Element("Nitrogen", "N", 7., 14.007*g/mole);
G4Element* elementO = new G4Element("Oxygen", "O", 8., 15.9994*g/mole);
G4Element* elementMg = new G4Element("Magnesium", "Mg",12., 24.3050*g/mole);
G4Element* elementAl = new G4Element("Aluminium", "Al",13., 26.9815*g/mole);
G4Element* elementSi = new G4Element("Silicon", "Si",14., 28.0855*g/mole);
G4Element* elementTi = new G4Element("Titanium", "Ti",22., 47.90*g/mole);
G4Element* elementV = new G4Element("Vanadium", "V", 23., 50.9415*g/mole);
G4Element* elementFe = new G4Element("Iron", "Fe",26., 55.845*g/mole);
G4Element* elementMo = new G4Element("Molybdenum","Mo",42., 95.94*g/mole);
G4Element* elementPt = new G4Element("Platinum", "Pt",78., 195.08*g/mole);
G4Element* elementAu = new G4Element("Gold", "Au",79., 196.97*g/mole);
// Materials
vacuum = new G4Material("vacuum", 1, 1.00794*g/mole,
1.0E-25*g/cm3, kStateGas, 0.1*kelvin, 1.0E-19*pascal);
// Aluminium alloy 6061-T6
Al6061 = new G4Material("Al6061", 2.70*g/cm3, 4);
Al6061->AddElement(elementAl, 0.980);
Al6061->AddElement(elementMg, 0.010);
Al6061->AddElement(elementSi, 0.006);
Al6061->AddElement(elementFe, 0.004);
// Aluminium Alloy honeycomb
AlHoneycomb = new G4Material("AlHoneycomb",0.05*g/cm3, 4);
AlHoneycomb->AddElement(elementAl, 0.980);
AlHoneycomb->AddElement(elementMg, 0.010);
AlHoneycomb->AddElement(elementSi, 0.006);
AlHoneycomb->AddElement(elementFe, 0.004);
// Solar Cells****
Scell = new G4Material("Scell", 7.82*g/cm3, 1);
Scell->AddElement(elementSi, 1.00);
// MLI Blanket: mylar (composition from STAR Stopping Power database)
MLImat = new G4Material("MLImat", 1.40*g/cm3, 3);
MLImat->AddElement(elementH, 0.041959);
MLImat->AddElement(elementC, 0.625017);
MLImat->AddElement(elementO, 0.333025);
// Molybdenum
molybdenum = new G4Material("molybdenum", 10.22*g/cm3, 1);
molybdenum->AddElement(elementMo, 1.00);
// Titanium Alloy (Ti-6Al-4V)
TiAlloy = new G4Material("TiAlloy", 4.43*g/cm3, 3);
TiAlloy->AddElement(elementTi, 0.90);
TiAlloy->AddElement(elementAl, 0.06);
TiAlloy->AddElement(elementV, 0.04);
// Gold
gold = new G4Material("gold", 19.32*g/cm3, 1);
gold->AddElement(elementAu, 1.00);
// Gold-Platinum 70%/30%
AuPt = new G4Material("AuPt", 19.92*g/cm3, 2);
AuPt->AddElement(elementAu, 0.70);
AuPt->AddElement(elementPt, 0.30);
// CRFP (Carbon Fiber Reinforced Polymer): M55 Quasiisotropic Layup
CFRP = new G4Material("CFRP", 1.66*g/cm3, 1);
CFRP->AddElement(elementC,1);
// Silicate glass
G4Material* SiGlass = new G4Material("SiGlass", 2.20*g/cm3, 2);
SiGlass->AddElement(elementO, 2);
SiGlass->AddElement(elementSi,1);
// Titanium glass
G4Material* TiGlass = new G4Material("TiGlass", 4.25*g/cm3, 2);
TiGlass->AddElement(elementO, 2);
TiGlass->AddElement(elementTi,1);
// Corning 7972 ULE Titanium Silicate Glass
ULEglass = new G4Material("ULEglass", 2.21*g/cm3, 2);
ULEglass->AddMaterial(SiGlass, 0.925);
ULEglass->AddMaterial(TiGlass, 0.075);
// SHAPAL-M (AlN)
SHAPAL = new G4Material("SHAPAL-M", 2.90*g/cm3, 2);
SHAPAL->AddElement(elementAl,1);
SHAPAL->AddElement(elementN, 1);
// Silicon carbide
SiC = new G4Material("SiC", 3.1*g/cm3, 2);
SiC->AddElement(elementSi,1);
SiC->AddElement(elementC, 1);
// Foam: Polystyrene-based
foam = new G4Material("foam",0.05*g/cm3, 2);
foam->AddElement(elementC, 0.90);
foam->AddElement(elementH, 0.10);
}
@@ -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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAEventAction_h
#define LISAEventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
#include "G4ios.hh"
#include <strstream>
class LISAPrimaryGeneratorAction;
class LISASteppingAction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISAEventAction : public G4UserEventAction {
public:
LISAEventAction(LISAPrimaryGeneratorAction*, LISASteppingAction*);
virtual ~LISAEventAction();
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
private:
LISAPrimaryGeneratorAction* genAction;
LISASteppingAction* stepAction;
public:
inline void SetFilename(const G4String& name) {filename = name;};
private:
G4int event_id;
G4double energy_pri;
G4int charge_in[2];
G4int charge_out[2];
G4int charge_tot[2];
const long* seeds;
G4String filename;
};
#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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAPhysicsList_h
#define LISAPhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISAPhysicsList: public G4VUserPhysicsList {
public:
LISAPhysicsList();
virtual ~LISAPhysicsList();
public:
virtual void SetCuts();
protected:
// particles and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
// physics processes
virtual void AddTransportation();
virtual void ElectromagneticPhysics();
virtual void HadronicPhysics();
virtual void ElectroNuclearPhysics();
virtual void GeneralPhysics();
private:
G4int VerboseLevel;
};
#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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAPrimaryGeneratorAction_h
#define LISAPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4GeneralParticleSource;
class G4Event;
class LISAPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
public:
LISAPrimaryGeneratorAction();
~LISAPrimaryGeneratorAction();
void GeneratePrimaries(G4Event* anEvent);
private:
G4GeneralParticleSource* particleGun;
private:
long seeds[2];
G4double energy_pri;
public:
const long* GetEventSeeds() {return seeds;};
G4double GetEnergyPrimary() {return energy_pri;};
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISARunAction_h
#define LISARunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
class LISARunActionMessenger;
class G4Run;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISARunAction : public G4UserRunAction {
public:
LISARunAction();
~LISARunAction();
public:
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
public:
inline void SetAutoSeed (const G4bool val) {autoSeed = val;}
private:
LISARunActionMessenger* runMessenger;
G4bool autoSeed;
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISARunActionMessenger_h
#define LISARunActionMessenger_h 1
#include "G4UImessenger.hh"
#include "G4UIcommand.hh"
#include "G4UIcmdWithABool.hh"
#include <strstream>
#include "globals.hh"
class LISARunAction;
class LISARunActionMessenger: public G4UImessenger {
public:
LISARunActionMessenger(LISARunAction*);
~LISARunActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
LISARunAction* runAction;
G4UIcmdWithABool* SetAutoSeedCmd;
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAStackingAction_h
#define LISAStackingAction_h 1
#include "globals.hh"
#include "G4UserStackingAction.hh"
class LISAStackingActionMessenger;
class G4Track;
class LISAStackingAction : public G4UserStackingAction {
public:
LISAStackingAction();
virtual ~LISAStackingAction();
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
virtual void NewStage();
virtual void PrepareNewEvent();
public:
inline void SetPrimarySurvey (const G4bool val) {PrimarySurveyFlag = val;}
inline void SetParticleSurvey(const G4bool val) {ParticleSurveyFlag = val;}
private:
LISAStackingActionMessenger* stackingMessenger;
G4bool PrimarySurveyFlag;
G4bool ParticleSurveyFlag;
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAStackingActionMessenger_h
#define LISAStackingActionMessenger_h 1
#include "G4UImessenger.hh"
#include "G4UIcommand.hh"
#include "G4UIcmdWithABool.hh"
#include "globals.hh"
class LISAStackingAction;
class LISAStackingActionMessenger: public G4UImessenger {
public:
LISAStackingActionMessenger(LISAStackingAction*);
~LISAStackingActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
LISAStackingAction* stackingAction;
G4UIcmdWithABool* SetPriSurvey;
G4UIcmdWithABool* SetPartSurvey;
};
#endif
@@ -0,0 +1,73 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISASteppingAction_h
#define LISASteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "globals.hh"
class LISAEventAction;
class LISASteppingActionMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISASteppingAction : public G4UserSteppingAction {
public:
LISASteppingAction();
virtual ~LISASteppingAction();
virtual void UserSteppingAction(const G4Step*);
public:
inline void Discharge(void) {charge_in[0]=0; charge_out[0]=0;
charge_in[1]=0; charge_out[1]=0;};
inline G4int GetChargeIn(const G4int tm) {return charge_in[tm];}
inline G4int GetChargeOut(const G4int tm) {return charge_out[tm];}
inline void SetFlagSpectrum(const G4bool val) {FlagSpectrum = val;}
private:
G4int charge_in[2];
G4int charge_out[2];
LISASteppingActionMessenger* steppingMessenger;
G4bool FlagSpectrum;
};
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISASteppingActionMessenger_h
#define LISASteppingActionMessenger_h 1
#include "G4UImessenger.hh"
#include "G4UIcommand.hh"
#include "G4UIcmdWithABool.hh"
#include "G4UIdirectory.hh"
#include "globals.hh"
class LISASteppingAction;
class LISASteppingActionMessenger: public G4UImessenger {
public:
LISASteppingActionMessenger(LISASteppingAction*);
~LISASteppingActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
LISASteppingAction* steppingAction;
G4UIcmdWithABool* SetFlagSpectrum;
G4UIdirectory* newDir;
};
#endif
@@ -0,0 +1,55 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// ********************************************************************
// * *
// * cosmicray_charging advanced example for Geant4 *
// * (adapted simulation of test-mass charging in the LISA mission) *
// * *
// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
// * Imperial College London *
// * *
// ********************************************************************
#ifndef LISAVisManager_h
#define LISAVisManager_h 1
#ifdef G4VIS_USE
#include "G4VisManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class LISAVisManager: public G4VisManager {
public:
LISAVisManager();
private:
void RegisterGraphicsSystems ();
};
#endif
#endif