Import Geant4 10.0.0 source tree
This commit is contained in:
+19
-17
@@ -23,29 +23,31 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author:Susanna Guatelli, guatelli@ge.infn.it
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
|
||||
#ifndef REMSIMMUONSTANDARD_HH
|
||||
#define REMSIMMUONSTANDARD_HH 1
|
||||
#ifndef ActionInitialization_h
|
||||
#define ActionInitialization_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
|
||||
class RemSimMuonStandard : public G4VPhysicsConstructor {
|
||||
class AnalysisManager;
|
||||
|
||||
public:
|
||||
class ActionInitialization: public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
ActionInitialization(AnalysisManager* );
|
||||
virtual ~ActionInitialization();
|
||||
|
||||
RemSimMuonStandard(const G4String& name = "muon-standard");
|
||||
|
||||
virtual ~RemSimMuonStandard();
|
||||
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle() {};
|
||||
|
||||
virtual void ConstructProcess();
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
private:
|
||||
AnalysisManager* analysis;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+30
-25
@@ -23,42 +23,47 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
// ********************************************
|
||||
// * *
|
||||
// * RemSimRunAction.hh *
|
||||
// * *
|
||||
// ********************************************
|
||||
//
|
||||
#ifndef RemSimRunAction_h
|
||||
#define RemSimRunAction_h 1
|
||||
|
||||
|
||||
#ifndef ANALYSISMANAGER_HH
|
||||
#define ANALYSISMANAGER_HH
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "globals.hh"
|
||||
#include "g4root.hh"
|
||||
|
||||
class G4Run;
|
||||
class RemSimAnalysisManager;
|
||||
// Define the total number of columns in the ntuple
|
||||
const G4int MaxNtCol = 3;
|
||||
|
||||
class RemSimRunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RemSimRunAction();
|
||||
~RemSimRunAction();
|
||||
class AnalysisManager
|
||||
{
|
||||
|
||||
public:
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
void EndOfRunAction(const G4Run* );
|
||||
G4int GetRunID() {return runID;};
|
||||
AnalysisManager();
|
||||
~AnalysisManager();
|
||||
|
||||
void book(); // booking the ROOT file
|
||||
|
||||
void SetPrimaryEnergy(G4double energy); // Store the energy of the primary particles
|
||||
|
||||
void StoreEnergyDeposition(G4double edep);// Fill the ntuple with energy deposition per event
|
||||
|
||||
void FillSecondaries(G4int AA, G4double charge, G4double energy);
|
||||
// Information about secondary particles
|
||||
|
||||
void finish();
|
||||
// Close the ROOT file with all the results stored in nutples
|
||||
|
||||
private:
|
||||
G4int runID;
|
||||
G4bool factoryOn;
|
||||
G4int fNtColId[MaxNtCol];
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
+17
-19
@@ -23,33 +23,31 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author: Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimSteppingActionMessenger_h
|
||||
#define RemSimSteppingActionMessenger_h 1
|
||||
|
||||
#ifndef DetectorConstruction_H
|
||||
#define DetectorConstruction_H 1
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
|
||||
class RemSimSteppingAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4VPhysicalVolume;
|
||||
class DetectorMessenger;
|
||||
class G4LogicalVolume;
|
||||
|
||||
class RemSimSteppingActionMessenger: public G4UImessenger
|
||||
class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
RemSimSteppingActionMessenger(RemSimSteppingAction*);
|
||||
~RemSimSteppingActionMessenger();
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
DetectorConstruction(AnalysisManager* analysis);
|
||||
~DetectorConstruction();
|
||||
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
void ConstructSDandField();
|
||||
|
||||
private:
|
||||
RemSimSteppingAction* steppingAction;
|
||||
G4UIdirectory* stepDirectory;
|
||||
G4UIcmdWithAString* hadronicCmd;
|
||||
AnalysisManager* analysis;
|
||||
};
|
||||
#endif
|
||||
|
||||
+35
-28
@@ -23,56 +23,63 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// Author: Susanna Guatelli, susanna@uow.edu.au
|
||||
// Code based on the hadrontherapy advanced example
|
||||
|
||||
#ifndef REMSIMPHYSICSLIST_HH
|
||||
#define REMSIMPHYSICSLIST_HH 1
|
||||
#ifndef PhysicsList_h
|
||||
#define PhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4EmConfigurator.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPhysicsConstructor;
|
||||
class HadrontherapyStepMax;
|
||||
class PhysicsListMessenger;
|
||||
|
||||
class RemSimPhysicsListMessenger;
|
||||
|
||||
class RemSimPhysicsList: public G4VModularPhysicsList {
|
||||
class PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
RemSimPhysicsList();
|
||||
|
||||
virtual ~RemSimPhysicsList();
|
||||
PhysicsList();
|
||||
virtual ~PhysicsList();
|
||||
|
||||
void ConstructParticle();
|
||||
|
||||
void SetCuts();
|
||||
void SetCutForGamma(G4double);
|
||||
void SetCutForElectron(G4double);
|
||||
void SetCutForPositron(G4double);
|
||||
|
||||
void AddPhysicsList(const G4String& name);
|
||||
void ConstructProcess();
|
||||
|
||||
//register the threshold of production of secondaries
|
||||
void SetCuts();
|
||||
void AddStepMax();// At the moment this is not used
|
||||
|
||||
// Register PhysicsList chunks
|
||||
void AddPhysicsList(const G4String& name);
|
||||
void AddPackage(const G4String& name);
|
||||
|
||||
private:
|
||||
G4EmConfigurator em_config;
|
||||
G4bool helIsRegistered;// hadronic elastic scattering flag
|
||||
G4bool bicIsRegistered;// binary cascade inleastic scattering flag
|
||||
G4bool bicIonIsRegistered; // binary ion cascade inelastic scattering flag
|
||||
G4bool radioactiveDecayIsRegistered;// radioactive decay module flag
|
||||
|
||||
G4EmConfigurator em_config;
|
||||
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForPositron;
|
||||
|
||||
G4bool helIsRegisted;
|
||||
G4bool bicIsRegisted;
|
||||
G4bool biciIsRegisted;
|
||||
G4bool locIonIonInelasticIsRegistered;
|
||||
G4bool radioactiveDecayIsRegisted;
|
||||
|
||||
G4String emName;
|
||||
G4VPhysicsConstructor* emPhysicsList;
|
||||
G4VPhysicsConstructor* decPhysicsList;
|
||||
std::vector<G4VPhysicsConstructor*> hadronPhys;
|
||||
|
||||
RemSimPhysicsListMessenger* messenger;
|
||||
PhysicsListMessenger* pMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+32
-24
@@ -23,40 +23,48 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// ************************************************
|
||||
// * *
|
||||
// * RemSimPrimaryGeneratorMessenger.hh *
|
||||
// * *
|
||||
// ************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
|
||||
#ifndef RemSimPrimaryGeneratorMessenger_h
|
||||
#define RemSimPrimaryGeneratorMessenger_h 1
|
||||
|
||||
// Code based on the hadrontherapy advanced example
|
||||
|
||||
#ifndef PhysicsListMessenger_h
|
||||
#define PhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class RemSimPrimaryGeneratorAction;
|
||||
class PhysicsList;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
class RemSimPrimaryGeneratorMessenger: public G4UImessenger
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
RemSimPrimaryGeneratorMessenger(RemSimPrimaryGeneratorAction* );
|
||||
~RemSimPrimaryGeneratorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
public:
|
||||
|
||||
private:
|
||||
RemSimPrimaryGeneratorAction* primary;
|
||||
G4UIdirectory* gunDir;
|
||||
G4UIcmdWithAString* dataCmd;
|
||||
PhysicsListMessenger(PhysicsList* );
|
||||
~PhysicsListMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
PhysicsList* pPhysicsList;
|
||||
|
||||
G4UIdirectory* physDir;
|
||||
G4UIcmdWithADoubleAndUnit* gammaCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* electCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* protoCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* allCutCmd;
|
||||
G4UIcmdWithAString* pListCmd;
|
||||
G4UIcmdWithAString* packageListCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
|
||||
|
||||
#ifndef PrimaryGeneratorAction_hh
|
||||
#define PrimaryGeneratorAction_hh 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class G4GeneralParticleSource;
|
||||
class G4Event;
|
||||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
PrimaryGeneratorAction(AnalysisManager*);
|
||||
~PrimaryGeneratorAction();
|
||||
|
||||
void GeneratePrimaries(G4Event* anEvent);
|
||||
|
||||
private:
|
||||
G4GeneralParticleSource* gun;
|
||||
AnalysisManager* analysis;
|
||||
};
|
||||
#endif
|
||||
@@ -1,39 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// Author: S. Guatelli, susanna@uow.edu.au
|
||||
/// \file RemSimAnalysis.hh
|
||||
/// \brief Selection of the analysis technology
|
||||
|
||||
#ifndef RemSimAnalysis_h
|
||||
#define RemSimAnalysis_h 1
|
||||
|
||||
#include "g4analysis_defs.hh"
|
||||
|
||||
using namespace G4Root;
|
||||
//using namespace G4Xml;
|
||||
|
||||
#endif
|
||||
@@ -1,71 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
// * RemSimAstronautDecorator.hh *
|
||||
// * *
|
||||
// **********************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author:Susanna Guatelli, guatelli@ge.infn.it
|
||||
|
||||
#ifndef RemSimAstronautDecorator_h
|
||||
#define RemSimAstronautDecorator_h 1
|
||||
|
||||
#include "RemSimDecorator.hh"
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
#include "globals.hh"
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class RemSimVGeometryComponent;
|
||||
class RemSimDecorator;
|
||||
class G4VPhysicalVolume;
|
||||
class G4VisAttributes;
|
||||
class RemSimSensitiveDetector;
|
||||
|
||||
class RemSimAstronautDecorator: public RemSimDecorator
|
||||
{
|
||||
public:
|
||||
RemSimAstronautDecorator(RemSimVGeometryComponent*, G4bool);
|
||||
~RemSimAstronautDecorator();
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
void ChangeThickness(G4double);
|
||||
void PrintDetectorParameters();
|
||||
|
||||
private:
|
||||
void ConstructAstronaut(G4VPhysicalVolume*);
|
||||
G4Box* phantom;
|
||||
G4LogicalVolume* phantomLog;
|
||||
G4VPhysicalVolume* phantomPhys;
|
||||
G4bool flag;
|
||||
RemSimSensitiveDetector* sensitiveDetector;
|
||||
};
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// ***************************
|
||||
// * *
|
||||
// * RemSimDecorator.hh *
|
||||
// * *
|
||||
// ***************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author:Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimDecorator_h
|
||||
#define RemSimDecorator_h 1
|
||||
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class RemSimVGeometryComponent;
|
||||
|
||||
class RemSimDecorator: public RemSimVGeometryComponent
|
||||
{
|
||||
public:
|
||||
RemSimDecorator(RemSimVGeometryComponent*);
|
||||
~RemSimDecorator();
|
||||
|
||||
virtual void ConstructComponent(G4VPhysicalVolume*);
|
||||
virtual void DestroyComponent();
|
||||
virtual void ChangeThickness(G4double) = 0;
|
||||
|
||||
private:
|
||||
RemSimVGeometryComponent* component;
|
||||
};
|
||||
#endif
|
||||
@@ -1,86 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// **************************************
|
||||
// * *
|
||||
// * RemSimDetectorConstruction.hh *
|
||||
// * *
|
||||
// **************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author:Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimDetectorConstruction_H
|
||||
#define RemSimDetectorConstruction_H 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
class RemSimMaterial;
|
||||
class RemSimDetectorMessenger;
|
||||
class G4Box;
|
||||
class G4VisAttributes;
|
||||
class RemSimVGeometryComponent;
|
||||
class RemSimDecorator;
|
||||
class RemSimDetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
RemSimDetectorConstruction();
|
||||
~RemSimDetectorConstruction();
|
||||
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
void ConstructVolume();
|
||||
void AddShielding(G4String);
|
||||
void AddShelterSPE(G4String);
|
||||
void AddHabitatRoof(G4String);
|
||||
void ChangeShieldingThickness(G4double);
|
||||
void ChangeRoofThickness(G4double);
|
||||
void ChooseConfiguration(G4String);
|
||||
|
||||
private:
|
||||
|
||||
G4LogicalVolume* experimentalHall_log;
|
||||
G4VPhysicalVolume* experimentalHall_phys;
|
||||
G4VPhysicalVolume* phantomPhys;
|
||||
G4VPhysicalVolume* detectorPhys;
|
||||
RemSimVGeometryComponent* geometry;
|
||||
RemSimMaterial* pMaterial;
|
||||
RemSimDetectorMessenger* messenger;
|
||||
G4String decoratorValue;
|
||||
G4String astronautValue;
|
||||
RemSimDecorator* decorator;
|
||||
RemSimDecorator* decoratorSPE;
|
||||
RemSimDecorator* decorator1;
|
||||
RemSimDecorator* decoratorRoof;
|
||||
G4bool moon;
|
||||
G4bool flag;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// *****************************************
|
||||
// * *
|
||||
// * RemSimDetectrorMessenger.hh *
|
||||
// * *
|
||||
// *****************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
#ifndef RemSimDetectorMessenger_h
|
||||
#define RemSimDetectorMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class RemSimDetectorConstruction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class RemSimDetectorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
RemSimDetectorMessenger(RemSimDetectorConstruction* );
|
||||
~RemSimDetectorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
RemSimDetectorConstruction* detector;//pointer to detector
|
||||
G4UIdirectory* vehicleDir; // control the geometry configuration
|
||||
G4UIcmdWithAString* vehicleCmd; //change set-up configuration
|
||||
G4UIcmdWithAString* shieldingCmd;//add the shielding layer
|
||||
G4UIcmdWithAString* SPECmd; //add the SPE shelter
|
||||
G4UIcmdWithAString* roofCmd; // add the roof to the moon habitat
|
||||
G4UIdirectory* shieldingDir;//control the shielding parameters
|
||||
G4UIcmdWithADoubleAndUnit* thicknessCmd; //change the thickness of the
|
||||
// shielding
|
||||
|
||||
G4UIdirectory* roofDir; // control the roof height
|
||||
G4UIcmdWithADoubleAndUnit* thicknessRoofCmd;//change the thickness of the
|
||||
// roof
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
// * RemSimEventAction.hh *
|
||||
// * *
|
||||
// **********************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author : Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
|
||||
#ifndef RemSimEventAction_h
|
||||
#define RemSimEventAction_h 1
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Event;
|
||||
class RemSimEventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
RemSimEventAction();
|
||||
~RemSimEventAction();
|
||||
|
||||
public:
|
||||
void BeginOfEventAction(const G4Event*);
|
||||
G4int GetEventNo() const {return evtNo;};
|
||||
void EndOfEventAction(const G4Event*);
|
||||
|
||||
private:
|
||||
G4int evtNo;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
// * BrachyMaterial.hh *
|
||||
// * *
|
||||
// **********************************
|
||||
//
|
||||
//Code developed by: Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
//This class manages the elements and materials needed by the simulation
|
||||
// set-up ...
|
||||
//
|
||||
#ifndef RemSimMaterial_H
|
||||
#define RemSimMaterial_H 1
|
||||
#include "globals.hh"
|
||||
class G4Material;
|
||||
|
||||
class RemSimMaterial
|
||||
{
|
||||
public:
|
||||
RemSimMaterial();
|
||||
~ RemSimMaterial();
|
||||
|
||||
public:
|
||||
void DefineMaterials();
|
||||
G4Material* GetMaterial(G4String); //returns the material
|
||||
|
||||
private:
|
||||
G4Material* matPb;
|
||||
G4Material* matAir;
|
||||
G4Material* matH2O;
|
||||
G4Material* Al;
|
||||
G4Material* nylon;
|
||||
G4Material* mylar;
|
||||
G4Material* beta;
|
||||
G4Material* nextel;
|
||||
G4Material* kevlar;
|
||||
G4Material* vacuum;
|
||||
G4Material* betaCloth;
|
||||
G4Material* eterogeneousNextel;
|
||||
G4Material* kevlarVacuum;
|
||||
G4Material* polyethylene;
|
||||
G4Material* polyacrylate;
|
||||
G4Material* evoh;
|
||||
G4Material* nomex;
|
||||
G4Material* nomexAir;
|
||||
G4Material* kevlarAir;
|
||||
G4Material* moon;
|
||||
};
|
||||
#endif
|
||||
@@ -1,61 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// **************************************
|
||||
// * *
|
||||
// * RemSimMoonHabitat.hh *
|
||||
// * *
|
||||
// **************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author:Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimMoonHabitat_h
|
||||
#define RemSimMoonHabitat_h 1
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class G4VisAttributes;
|
||||
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
|
||||
class RemSimMoonHabitat: public RemSimVGeometryComponent
|
||||
{
|
||||
public:
|
||||
RemSimMoonHabitat();
|
||||
~RemSimMoonHabitat();
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
|
||||
private:
|
||||
RemSimMaterial* pMaterial;
|
||||
G4VPhysicalVolume* moonPhys;
|
||||
};
|
||||
#endif
|
||||
@@ -1,75 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// ************************************
|
||||
// * *
|
||||
// * RemSimRoofDecorator.hh *
|
||||
// * *
|
||||
// ************************************
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
#ifndef RemSimRoofDecorator_h
|
||||
#define RemSimRoofDecorator_h 1
|
||||
|
||||
#include "RemSimDecorator.hh"
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
#include "globals.hh"
|
||||
class G4VPhysicalVolume;
|
||||
class G4Trd;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class RemSimVGeometryComponent;
|
||||
class RemSimDecorator;
|
||||
class G4VPhysicalVolume;
|
||||
class G4VisAttributes;
|
||||
|
||||
class RemSimRoofDecorator: public RemSimDecorator
|
||||
{
|
||||
public:
|
||||
RemSimRoofDecorator(RemSimVGeometryComponent*);
|
||||
~RemSimRoofDecorator();
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
void ChangeThickness(G4double);
|
||||
void PrintDetectorParameters();
|
||||
|
||||
private:
|
||||
|
||||
void ConstructRoof(G4VPhysicalVolume*);
|
||||
|
||||
RemSimMaterial* pMaterial;
|
||||
G4String shieldingMaterial;
|
||||
G4VisAttributes* roofVisAtt;
|
||||
G4Trd* roof;
|
||||
G4LogicalVolume* roofLog;
|
||||
G4VPhysicalVolume* roofPhys;
|
||||
};
|
||||
#endif
|
||||
@@ -1,71 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimShelterSPEDecorator_h
|
||||
#define RemSimShelterSPEDecorator_h 1
|
||||
|
||||
#include "RemSimDecorator.hh"
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
#include "globals.hh"
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class RemSimVGeometryComponent;
|
||||
class RemSimDecorator;
|
||||
class G4VPhysicalVolume;
|
||||
class G4VisAttributes;
|
||||
|
||||
class RemSimShelterSPEDecorator: public RemSimDecorator
|
||||
{
|
||||
public:
|
||||
RemSimShelterSPEDecorator(RemSimVGeometryComponent*);
|
||||
~RemSimShelterSPEDecorator();
|
||||
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
void ChangeThickness(G4double);
|
||||
void PrintDetectorParameters();
|
||||
|
||||
private:
|
||||
void ConstructShelterSPE(G4VPhysicalVolume*);
|
||||
|
||||
G4double shelterSPEX;
|
||||
G4double shelterSPEY;
|
||||
G4double shelterSPEZ;
|
||||
G4double translation;
|
||||
RemSimMaterial* pMaterial;
|
||||
G4String shelterSPEMaterial;
|
||||
G4VisAttributes* shelterSPEVisAtt;
|
||||
G4Box* shelterSPE;
|
||||
G4LogicalVolume* shelterSPELog;
|
||||
G4VPhysicalVolume* shelterSPEPhys;
|
||||
};
|
||||
#endif
|
||||
@@ -1,70 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimShieldingDecorator_h
|
||||
#define RemSimShieldingDecorator_h 1
|
||||
|
||||
#include "RemSimDecorator.hh"
|
||||
#include "RemSimVGeometryComponent.hh"
|
||||
#include "globals.hh"
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class RemSimVGeometryComponent;
|
||||
class RemSimDecorator;
|
||||
class G4VPhysicalVolume;
|
||||
class G4VisAttributes;
|
||||
|
||||
class RemSimShieldingDecorator: public RemSimDecorator
|
||||
{
|
||||
public:
|
||||
RemSimShieldingDecorator(RemSimVGeometryComponent*);
|
||||
~RemSimShieldingDecorator();
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
void ChangeThickness(G4double);
|
||||
void PrintDetectorParameters();
|
||||
|
||||
private:
|
||||
void ConstructShielding(G4VPhysicalVolume*);
|
||||
|
||||
G4double shieldingX;
|
||||
G4double shieldingY;
|
||||
G4double shieldingZ;
|
||||
G4double translation;
|
||||
RemSimMaterial* pMaterial;
|
||||
G4String shieldingMaterial;
|
||||
G4VisAttributes* shieldingVisAtt;
|
||||
G4Box* shielding;
|
||||
G4LogicalVolume* shieldingLog;
|
||||
G4VPhysicalVolume* shieldingPhys;
|
||||
};
|
||||
#endif
|
||||
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
|
||||
#ifndef RemSimVehicle1_h
|
||||
#define RemSimVehicle1_h 1
|
||||
|
||||
class RemSimVGeometryComponent;
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class RemSimMaterial;
|
||||
class G4VisAttributes;
|
||||
class RemSimVehicle1: public RemSimVGeometryComponent
|
||||
{
|
||||
public:
|
||||
RemSimVehicle1();
|
||||
~RemSimVehicle1();
|
||||
void ConstructComponent(G4VPhysicalVolume*);
|
||||
void DestroyComponent();
|
||||
G4VPhysicalVolume* GetShelter(){return 0;};
|
||||
|
||||
private:
|
||||
RemSimMaterial* pMaterial;
|
||||
G4VPhysicalVolume* layervacuumPhys;
|
||||
G4VPhysicalVolume* layer1Phys;
|
||||
G4VPhysicalVolume* layer2Phys;
|
||||
G4VPhysicalVolume* layer3Phys;
|
||||
G4VPhysicalVolume* layer4Phys;
|
||||
G4VPhysicalVolume* layer5Phys;
|
||||
G4VPhysicalVolume* layer6Phys;
|
||||
G4VPhysicalVolume* layer7Phys;
|
||||
G4VPhysicalVolume* layer8Phys;
|
||||
G4VPhysicalVolume* layer9Phys;
|
||||
G4VPhysicalVolume* layer10Phys;
|
||||
G4VPhysicalVolume* layer11Phys;
|
||||
G4VPhysicalVolume* layer12Phys;
|
||||
G4VPhysicalVolume* layer13Phys;
|
||||
G4VPhysicalVolume* layer14Phys;
|
||||
G4VPhysicalVolume* layer15Phys;
|
||||
G4VPhysicalVolume* layerPhys;
|
||||
G4VPhysicalVolume* layer16Phys;
|
||||
G4VPhysicalVolume* layer17Phys;
|
||||
G4VPhysicalVolume* layer18Phys;
|
||||
G4VPhysicalVolume* layer19Phys;
|
||||
G4VPhysicalVolume* layer20Phys;
|
||||
G4VPhysicalVolume* layer21Phys;
|
||||
G4VPhysicalVolume* layer22Phys;
|
||||
G4VPhysicalVolume* layer23Phys;
|
||||
G4VPhysicalVolume* layer24Phys;
|
||||
G4VPhysicalVolume* layer25Phys;
|
||||
G4VPhysicalVolume* layer26Phys;
|
||||
G4VPhysicalVolume* layer27Phys;
|
||||
};
|
||||
#endif
|
||||
+23
-12
@@ -23,23 +23,34 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// Authors: S. Guatelli and J. Davis, CMRP, UOW
|
||||
//
|
||||
//
|
||||
// Code developed by: S.Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimVGeometryComponent_h
|
||||
#define RemSimVGeometryComponent_h 1
|
||||
|
||||
#ifndef RunAction_h
|
||||
#define RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
#include <map>
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class RemSimVGeometryComponent
|
||||
class RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RemSimVGeometryComponent();
|
||||
virtual ~RemSimVGeometryComponent();
|
||||
public:
|
||||
RunAction(AnalysisManager* analysis);
|
||||
~RunAction();
|
||||
|
||||
virtual void ConstructComponent(G4VPhysicalVolume*) = 0;
|
||||
virtual void DestroyComponent() = 0;
|
||||
public:
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
void EndOfRunAction(const G4Run*);
|
||||
|
||||
private:
|
||||
AnalysisManager* analysisMan;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+25
-32
@@ -23,45 +23,38 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// Author: Susanna Guatelli (guatelli@ge.infn.it)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 27 May 2003 S.Guatelli first code review
|
||||
// 17 May 2003 S. Guatelli 1st implementation
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// Code based on basic example B2
|
||||
|
||||
#ifndef RemSimSteppingAction_h
|
||||
#define RemSimSteppingAction_h 1
|
||||
#ifndef SensitiveDetector_h
|
||||
#define SensitiveDetector_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
|
||||
#include "SensitiveDetectorHit.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
#include <vector>
|
||||
|
||||
class G4Step;
|
||||
class RemSimPrimaryGeneratorAction;
|
||||
class RemSimSteppingActionMessenger;
|
||||
class G4HCofThisEvent;
|
||||
|
||||
class RemSimSteppingAction : public G4UserSteppingAction
|
||||
class SensitiveDetector : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
public:
|
||||
SensitiveDetector(const G4String& name,
|
||||
const G4String& hitsCollectionName, AnalysisManager*);
|
||||
virtual ~SensitiveDetector();
|
||||
|
||||
// methods from base class
|
||||
virtual void Initialize(G4HCofThisEvent* hitCollection);
|
||||
virtual G4bool ProcessHits(G4Step* step, G4TouchableHistory* history);
|
||||
virtual void EndOfEvent(G4HCofThisEvent* hitCollection);
|
||||
|
||||
RemSimSteppingAction(RemSimPrimaryGeneratorAction*);
|
||||
|
||||
~RemSimSteppingAction();
|
||||
|
||||
void UserSteppingAction(const G4Step* aStep);
|
||||
void SetHadronicAnalysis(G4String);
|
||||
|
||||
private:
|
||||
RemSimPrimaryGeneratorAction* primaryAction;
|
||||
G4String hadronic;
|
||||
RemSimSteppingActionMessenger* messenger;
|
||||
private:
|
||||
SensitiveDetectorHitsCollection* fHitsCollection;
|
||||
AnalysisManager* analysis;
|
||||
};
|
||||
|
||||
#endif
|
||||
+47
-33
@@ -23,48 +23,62 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// $Id: RemSimPrimaryGeneratorAction.hh,v 1.14 2006-06-29 16:23:07 gunter Exp $// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Susanna Guatelli, guatelli@ge.infn.it
|
||||
//
|
||||
#ifndef RemSimPrimaryGeneratorAction_h
|
||||
#define RemSimPrimaryGeneratorAction_h 1
|
||||
// Code based on the basic example B02
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
#ifndef SensitiveDetectorHit_h
|
||||
#define SensitiveDetectorHit_h 1
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
class G4DataVector;
|
||||
class RemSimPrimaryGeneratorMessenger;
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "tls.hh" // FOR MT
|
||||
|
||||
class RemSimPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
class SensitiveDetectorHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
RemSimPrimaryGeneratorAction();
|
||||
~RemSimPrimaryGeneratorAction();
|
||||
public:
|
||||
SensitiveDetectorHit();
|
||||
SensitiveDetectorHit(const SensitiveDetectorHit&);
|
||||
virtual ~SensitiveDetectorHit();
|
||||
|
||||
public:
|
||||
G4double GetInitialEnergy();
|
||||
void GeneratePrimaries(G4Event* anEvent);
|
||||
void ReadProbability(G4String);
|
||||
// operators
|
||||
const SensitiveDetectorHit& operator=(const SensitiveDetectorHit&);
|
||||
G4int operator==(const SensitiveDetectorHit&) const;
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
RemSimPrimaryGeneratorMessenger* messenger;
|
||||
G4bool readFile;
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
|
||||
G4double* cumulate;
|
||||
G4double* energy;
|
||||
// methods from base class
|
||||
virtual void Draw();
|
||||
virtual void Print();
|
||||
|
||||
//stores the probability given in input
|
||||
G4DataVector* data;
|
||||
//stores the energy data
|
||||
G4DataVector* energies;
|
||||
// Set methods
|
||||
void SetEdep (G4double de) { fEdep = de; };
|
||||
|
||||
G4double GetEdep() const { return fEdep; };
|
||||
|
||||
private:
|
||||
|
||||
G4int size;
|
||||
G4double fEdep;
|
||||
};
|
||||
|
||||
typedef G4THitsCollection<SensitiveDetectorHit> SensitiveDetectorHitsCollection;
|
||||
|
||||
extern G4ThreadLocal G4Allocator<SensitiveDetectorHit>* SensitiveDetectorHitAllocator;
|
||||
|
||||
inline void* SensitiveDetectorHit::operator new(size_t)
|
||||
{
|
||||
if(!SensitiveDetectorHitAllocator)
|
||||
SensitiveDetectorHitAllocator = new G4Allocator<SensitiveDetectorHit>;
|
||||
return (void *) SensitiveDetectorHitAllocator->MallocSingle();
|
||||
}
|
||||
|
||||
inline void SensitiveDetectorHit::operator delete(void *hit)
|
||||
{
|
||||
SensitiveDetectorHitAllocator->FreeSingle((SensitiveDetectorHit*) hit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+19
-26
@@ -23,39 +23,32 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// Author: Susanna Guatelli, guatelli@ge.infn.it
|
||||
|
||||
#ifndef RemSimPhysicsListMessenger_h
|
||||
#define RemSimPhysicsListMessenger_h 1
|
||||
#ifndef SteppingAction_h
|
||||
#define SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "AnalysisManager.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class RemSimPhysicsList;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4Step;
|
||||
|
||||
class RemSimPhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
class SteppingAction: public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
RemSimPhysicsListMessenger(RemSimPhysicsList*);
|
||||
~RemSimPhysicsListMessenger();
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
SteppingAction(AnalysisManager* analysis);
|
||||
~SteppingAction();
|
||||
|
||||
void UserSteppingAction(const G4Step* aStep);
|
||||
|
||||
private:
|
||||
RemSimPhysicsList* RemSimList;
|
||||
G4UIdirectory* EnDir;
|
||||
G4UIcmdWithAString* physicsListCmd;
|
||||
AnalysisManager* analysis;
|
||||
G4TrackVector* fSecondary;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user