Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc
|
||||
/// \brief Main program of the eventgenerator/HepMC/HepMCEx01 example
|
||||
//
|
||||
// $Id: HepMCEx01.cc 77801 2013-11-28 13:33:20Z gcosmo $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - example derived from novice exampleN04
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "ExN04DetectorConstruction.hh"
|
||||
#include "ExN04EventAction.hh"
|
||||
#include "ExN04PrimaryGeneratorAction.hh"
|
||||
#include "ExN04RunAction.hh"
|
||||
#include "ExN04StackingAction.hh"
|
||||
#include "ExN04SteppingAction.hh"
|
||||
#include "ExN04SteppingVerbose.hh"
|
||||
#include "ExN04TrackingAction.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
#endif
|
||||
|
||||
#ifdef G4UI_USE
|
||||
#include "G4UIExecutive.hh"
|
||||
#endif
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
// User Verbose output class
|
||||
//
|
||||
G4VSteppingVerbose* verbosity = new ExN04SteppingVerbose;
|
||||
G4VSteppingVerbose::SetInstance(verbosity);
|
||||
|
||||
// Run manager
|
||||
//
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
|
||||
// User Initialization classes (mandatory)
|
||||
//
|
||||
G4VUserDetectorConstruction* detector = new ExN04DetectorConstruction;
|
||||
runManager->SetUserInitialization(detector);
|
||||
//
|
||||
G4VUserPhysicsList* physics = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physics);
|
||||
|
||||
runManager->Initialize();
|
||||
|
||||
// User Action classes
|
||||
//
|
||||
G4VUserPrimaryGeneratorAction* gen_action = new ExN04PrimaryGeneratorAction;
|
||||
runManager->SetUserAction(gen_action);
|
||||
//
|
||||
G4UserRunAction* run_action = new ExN04RunAction;
|
||||
runManager->SetUserAction(run_action);
|
||||
//
|
||||
G4UserEventAction* event_action = new ExN04EventAction;
|
||||
runManager->SetUserAction(event_action);
|
||||
//
|
||||
G4UserStackingAction* stacking_action = new ExN04StackingAction;
|
||||
runManager->SetUserAction(stacking_action);
|
||||
//
|
||||
G4UserTrackingAction* tracking_action = new ExN04TrackingAction;
|
||||
runManager->SetUserAction(tracking_action);
|
||||
//
|
||||
G4UserSteppingAction* stepping_action = new ExN04SteppingAction;
|
||||
runManager->SetUserAction(stepping_action);
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// Visualization, if you choose to have it!
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
visManager->Initialize();
|
||||
#endif
|
||||
|
||||
//get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
if (argc!=1) // batch mode
|
||||
{
|
||||
#ifdef G4VIS_USE
|
||||
visManager->SetVerboseLevel("quiet");
|
||||
#endif
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager->ApplyCommand(command+fileName);
|
||||
}
|
||||
else
|
||||
{ // interactive mode : define UI session
|
||||
#ifdef G4UI_USE
|
||||
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Free the store: user actions, physics_list and detector_description are
|
||||
// owned and deleted by the run manager, so they should not
|
||||
// be deleted in the main() program !
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
delete runManager;
|
||||
delete verbosity;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/HepMC/HepMCEx02/HepMCEx02.cc
|
||||
/// \brief Main program of the eventgenerator/HepMC/HepMCEx02 example
|
||||
//
|
||||
//
|
||||
// $Id: HepMCEx02.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - example of HepMC-interface
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "H02DetectorConstruction.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "H02PrimaryGeneratorAction.hh"
|
||||
#include "H02EventAction.hh"
|
||||
#include "H02SteppingAction.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
#endif
|
||||
|
||||
#ifdef G4UI_USE
|
||||
#include "G4UIExecutive.hh"
|
||||
#endif
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
G4RunManager* runManager= new G4RunManager;
|
||||
|
||||
// User Initialization classes (mandatory)
|
||||
//
|
||||
G4VUserDetectorConstruction* detector = new H02DetectorConstruction;
|
||||
runManager-> SetUserInitialization(detector);
|
||||
//
|
||||
G4VUserPhysicsList* physics = new FTFP_BERT;
|
||||
runManager-> SetUserInitialization(physics);
|
||||
|
||||
runManager-> Initialize();
|
||||
|
||||
// User Action classes
|
||||
//
|
||||
G4VUserPrimaryGeneratorAction* gen_action = new H02PrimaryGeneratorAction;
|
||||
runManager-> SetUserAction(gen_action);
|
||||
//
|
||||
G4UserEventAction* event_action = new H02EventAction;
|
||||
runManager-> SetUserAction(event_action);
|
||||
//
|
||||
G4UserSteppingAction* stepping_action = new H02SteppingAction;
|
||||
runManager-> SetUserAction(stepping_action);
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// Initialize visualization package
|
||||
//
|
||||
G4VisManager* visManager= new G4VisExecutive;
|
||||
visManager-> Initialize();
|
||||
G4cout << G4endl;
|
||||
#endif
|
||||
|
||||
//get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
if (argc!=1) { // batch mode
|
||||
#ifdef G4VIS_USE
|
||||
visManager-> SetVerboseLevel("quiet");
|
||||
#endif
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager-> ApplyCommand(command+fileName);
|
||||
} else { // interactive mode : define UI session
|
||||
#ifdef G4UI_USE
|
||||
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
|
||||
ui-> SessionStart();
|
||||
delete ui;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Free the store: user actions, physics_list and detector_description are
|
||||
// owned and deleted by the run manager, so they should not
|
||||
// be deleted in the main() program !
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
|
||||
delete runManager;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 82281 2014-06-13 14:47:16Z gcosmo $
|
||||
$Id: History 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,9 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
07 October 2016 W. Pokorski (mctruthex-V10-02-00)
|
||||
- changes to comply with coding conventions
|
||||
|
||||
11 June 2014 W. Pokorski (mctruthex-V10-00-00)
|
||||
- changes to comply with coding conventions
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the MCTruthConfig class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthConfig.hh 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthConfig.hh 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -54,25 +54,25 @@ public:
|
||||
|
||||
virtual ~MCTruthConfig();
|
||||
|
||||
void SetMinE(double e) {minE = e;}
|
||||
G4double GetMinE() const {return minE;}
|
||||
void SetMinE(double e) {fMinE = e;}
|
||||
G4double GetMinE() const {return fMinE;}
|
||||
|
||||
void SetParticleTypes(std::vector<G4int>& types) {particleTypes = types;}
|
||||
void AddParticleType(G4int type) {particleTypes.push_back(type);}
|
||||
std::vector<G4int>& GetParticleTypes() {return particleTypes;}
|
||||
void SetParticleTypes(std::vector<G4int>& types) {fParticleTypes = types;}
|
||||
void AddParticleType(G4int type) {fParticleTypes.push_back(type);}
|
||||
std::vector<G4int>& GetParticleTypes() {return fParticleTypes;}
|
||||
|
||||
void SetCreatorProcesses(std::vector<G4String>& processes)
|
||||
{creatorProcesses = processes;}
|
||||
{fCreatorProcesses = processes;}
|
||||
void AddCreatorProcess(G4String& process)
|
||||
{creatorProcesses.push_back(process);}
|
||||
{fCreatorProcesses.push_back(process);}
|
||||
std::vector<G4String>& GetCreatorProcesses()
|
||||
{return creatorProcesses;}
|
||||
{return fCreatorProcesses;}
|
||||
|
||||
private:
|
||||
|
||||
G4double minE;
|
||||
std::vector<G4int> particleTypes;
|
||||
std::vector<G4String> creatorProcesses;
|
||||
G4double fMinE;
|
||||
std::vector<G4int> fParticleTypes;
|
||||
std::vector<G4String> fCreatorProcesses;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the MCTruthManager class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthManager.hh 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthManager.hh 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -57,14 +57,14 @@ public:
|
||||
static MCTruthManager* GetInstance();
|
||||
|
||||
void NewEvent();
|
||||
HepMC::GenEvent* GetCurrentEvent() const {return event;}
|
||||
HepMC::GenEvent* GetCurrentEvent() const {return fEvent;}
|
||||
void PrintEvent();
|
||||
|
||||
void AddParticle(G4LorentzVector&, G4LorentzVector&, G4LorentzVector&,
|
||||
G4int, G4int, G4int, G4bool);
|
||||
|
||||
void SetConfig(MCTruthConfig* c) {config=c;}
|
||||
MCTruthConfig* GetConfig() const {return config;}
|
||||
void SetConfig(MCTruthConfig* c) {fConfig=c;}
|
||||
MCTruthConfig* GetConfig() const {return fConfig;}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -74,25 +74,25 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
HepMC::GenEvent* event;
|
||||
HepMC::GenEvent* fEvent;
|
||||
|
||||
// vector containing barcodes of primary particles (not having any mother)
|
||||
//
|
||||
std::vector<G4int> primarybarcodes;
|
||||
std::vector<G4int> fPrimarybarcodes;
|
||||
|
||||
// map containing number of 'segmentations' for each particle (i.e. number
|
||||
// of additional vertices introduced in order to attach secondary particles
|
||||
// which were created 'in-flight', for instance bremstrahlung gammas, etc)
|
||||
//
|
||||
std::map<G4int,G4int> segmentations;
|
||||
std::map<G4int,G4int> fSegmentations;
|
||||
|
||||
// different criteria for storing (or not) particles
|
||||
//
|
||||
MCTruthConfig* config;
|
||||
MCTruthConfig* fConfig;
|
||||
|
||||
// recursive printing of the tree
|
||||
//
|
||||
void printTree(HepMC::GenParticle*, G4String);
|
||||
void PrintTree(HepMC::GenParticle*, G4String);
|
||||
|
||||
};
|
||||
#endif // INCLUDE_MCTRUTHMANAGER_H
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the MCTruthTrackInformation class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthTrackInformation.hh 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthTrackInformation.hh 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
G4bool directParent;
|
||||
G4bool fDirectParent;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the MCTruthTrackingAction class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthTrackingAction.hh 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthTrackingAction.hh 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
private:
|
||||
|
||||
G4LorentzVector fmom;
|
||||
G4bool trackToBeStored(const G4Track*);
|
||||
G4bool TrackToBeStored(const G4Track*);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//
|
||||
// $Id: DetectorConstruction.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: DetectorConstruction.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,6 +37,8 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "G4Material.hh"
|
||||
@@ -48,15 +50,19 @@
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
DetectorConstruction::DetectorConstruction() :
|
||||
Iron(0), Copper(0), Tungsten(0), Lead(0), Uranium(0), PbWO4(0),
|
||||
Polystyrene(0), LiquidArgon(0),
|
||||
theAbsorberMaterial(0),
|
||||
logicAbsorber(0), physiAbsorber(0) {}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
DetectorConstruction::~DetectorConstruction() {}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
{
|
||||
@@ -226,6 +232,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
return experimentalHall_phys;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void DetectorConstruction::PrintParameters()
|
||||
{
|
||||
@@ -240,3 +247,5 @@ void DetectorConstruction::PrintParameters()
|
||||
G4cout << G4endl << " -------------------------------------------------------- "
|
||||
<< G4endl << G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the MCTruthConfig class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthConfig.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthConfig.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,11 +37,19 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "MCTruthConfig.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthConfig::MCTruthConfig()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthConfig::~MCTruthConfig()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the MCTruthEventAction class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthEventAction.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthEventAction.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,23 +37,35 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "MCTruthEventAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthEventAction::MCTruthEventAction() : G4UserEventAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthEventAction::~MCTruthEventAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthEventAction::BeginOfEventAction(const G4Event*)
|
||||
{
|
||||
// instanciating new event
|
||||
MCTruthManager::GetInstance()->NewEvent();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthEventAction::EndOfEventAction(const G4Event*)
|
||||
{
|
||||
// printing event
|
||||
MCTruthManager::GetInstance()->PrintEvent();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the MCTruthManager class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthManager.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthManager.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,17 +37,27 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "MCTruthManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
static MCTruthManager* instance = 0;
|
||||
|
||||
MCTruthManager::MCTruthManager() : event(0), config(0)
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthManager::MCTruthManager() : event(0), fConfig(0)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthManager::~MCTruthManager()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthManager* MCTruthManager::GetInstance()
|
||||
{
|
||||
if( instance == 0 )
|
||||
@@ -57,14 +67,18 @@ MCTruthManager* MCTruthManager::GetInstance()
|
||||
return instance;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthManager::NewEvent()
|
||||
{
|
||||
// first delete the old event
|
||||
delete event;
|
||||
delete fEvent;
|
||||
// and now instaciate a new one
|
||||
event = new HepMC::GenEvent();
|
||||
fEvent = new HepMC::GenEvent();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
G4LorentzVector& prodpos,
|
||||
G4LorentzVector& endpos,
|
||||
@@ -76,7 +90,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
particle->suggest_barcode(partID);
|
||||
// we initialize the 'segmentations' map
|
||||
// for the moment particle is not 'segmented'
|
||||
segmentations[partID] = 1;
|
||||
fSegmentations[partID] = 1;
|
||||
|
||||
// we create the GenVertex corresponding to the end point of the track
|
||||
HepMC::GenVertex* endvertex = new HepMC::GenVertex(endpos);
|
||||
@@ -84,13 +98,13 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
// barcode of the endvertex = - barcode of the track
|
||||
endvertex->suggest_barcode(-partID);
|
||||
endvertex->add_particle_in(particle);
|
||||
event->add_vertex(endvertex);
|
||||
fEvent->add_vertex(endvertex);
|
||||
|
||||
if(motherID) // not a primary
|
||||
{
|
||||
// here we could try to improve speed by searching only through particles which
|
||||
// belong to the given primary tree
|
||||
HepMC::GenParticle* mother = event->barcode_to_particle(motherID);
|
||||
HepMC::GenParticle* mother = fEvent->barcode_to_particle(motherID);
|
||||
//
|
||||
if(mother)
|
||||
{
|
||||
@@ -147,7 +161,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
// minus the daughter particle barcode
|
||||
//
|
||||
childvtx->suggest_barcode(-500000-partID);
|
||||
event->add_vertex(childvtx);
|
||||
fEvent->add_vertex(childvtx);
|
||||
|
||||
HepMC::GenParticle* dummypart =
|
||||
new HepMC::GenParticle(G4LorentzVector(),-999999);
|
||||
@@ -166,7 +180,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
// the right 'segment' to add the new daugther.
|
||||
// We use Time coordinate to locate the place for the new vertex
|
||||
|
||||
G4int number_of_segments = segmentations[motherID];
|
||||
G4int number_of_segments = fSegmentations[motherID];
|
||||
G4int segment = 0;
|
||||
|
||||
// we loop through the segments
|
||||
@@ -178,7 +192,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
if (segment == number_of_segments)
|
||||
G4cerr << "Problem!!!! Time coordinates incompatible!" << G4endl;
|
||||
|
||||
mother = event->barcode_to_particle(segment*10000000 + motherID);
|
||||
mother = fEvent->barcode_to_particle(segment*10000000 + motherID);
|
||||
}
|
||||
|
||||
// now, we 'split' the appropriate 'segment' of the mother particle
|
||||
@@ -186,7 +200,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
//
|
||||
HepMC::GenVertex* childvtx = new HepMC::GenVertex(prodpos);
|
||||
childvtx->add_particle_out(particle);
|
||||
event->add_vertex(childvtx);
|
||||
fEvent->add_vertex(childvtx);
|
||||
|
||||
// we first detach the mother from its original vertex
|
||||
//
|
||||
@@ -202,12 +216,12 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
// original barcode
|
||||
//
|
||||
HepMC::GenParticle* mothertwo = new HepMC::GenParticle(*mother);
|
||||
mothertwo->suggest_barcode(segmentations[motherID]*10000000
|
||||
mothertwo->suggest_barcode(fSegmentations[motherID]*10000000
|
||||
+ mother->barcode());
|
||||
|
||||
// we also reset the barcodes of the vertices
|
||||
//
|
||||
orig_mother_end_vtx->suggest_barcode(-segmentations[motherID]
|
||||
orig_mother_end_vtx->suggest_barcode(-fSegmentations[motherID]
|
||||
*10000000 - mother->barcode());
|
||||
childvtx->suggest_barcode(-mother->barcode());
|
||||
|
||||
@@ -221,7 +235,7 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
|
||||
// and finally ... the increase the 'segmentation counter'
|
||||
//
|
||||
segmentations[motherID] = segmentations[motherID]+1;
|
||||
fSegmentations[motherID] = fSegmentations[motherID]+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -238,28 +252,32 @@ void MCTruthManager::AddParticle(G4LorentzVector& momentum,
|
||||
{
|
||||
HepMC::GenVertex* primaryvtx = new HepMC::GenVertex(prodpos);
|
||||
primaryvtx->add_particle_out(particle);
|
||||
event->add_vertex(primaryvtx);
|
||||
fEvent->add_vertex(primaryvtx);
|
||||
|
||||
// add id to the list of primaries
|
||||
//
|
||||
primarybarcodes.push_back(partID);
|
||||
fPrimarybarcodes.push_back(partID);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthManager::PrintEvent()
|
||||
{
|
||||
event->print();
|
||||
fEvent->print();
|
||||
|
||||
// looping over primaries and print the decay tree for each of them
|
||||
//
|
||||
for(std::vector<int>::const_iterator primarybar=primarybarcodes.begin();
|
||||
primarybar!=primarybarcodes.end();primarybar++)
|
||||
for(std::vector<int>::const_iterator primarybar=fPrimarybarcodes.begin();
|
||||
primarybar!=fPrimarybarcodes.end();primarybar++)
|
||||
{
|
||||
printTree(event->barcode_to_particle(*primarybar), " | ");
|
||||
PrintTree(fEvent->barcode_to_particle(*primarybar), " | ");
|
||||
}
|
||||
}
|
||||
|
||||
void MCTruthManager::printTree(HepMC::GenParticle* particle, G4String offset)
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthManager::PrintTree(HepMC::GenParticle* particle, G4String offset)
|
||||
{
|
||||
G4cout << offset << "--- barcode: " << particle->barcode() << " pdg: "
|
||||
<< particle->pdg_id() << " energy: " << particle->momentum().e()
|
||||
@@ -284,6 +302,8 @@ void MCTruthManager::printTree(HepMC::GenParticle* particle, G4String offset)
|
||||
deltaoffset = " | ";
|
||||
}
|
||||
|
||||
printTree((*it), offset + deltaoffset);
|
||||
PrintTree((*it), offset + deltaoffset);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the MCTruthTrackInformation class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthTrackInformation.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthTrackInformation.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,14 +37,22 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "MCTruthTrackInformation.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthTrackInformation::MCTruthTrackInformation()
|
||||
{
|
||||
directParent = true;
|
||||
fDirectParent = true;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthTrackInformation::~MCTruthTrackInformation()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the MCTruthTrackingAction class
|
||||
//
|
||||
//
|
||||
// $Id: MCTruthTrackingAction.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: MCTruthTrackingAction.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,6 +37,8 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include <iostream>
|
||||
|
||||
@@ -46,12 +48,18 @@
|
||||
#include "MCTruthTrackingAction.hh"
|
||||
#include "MCTruthTrackInformation.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthTrackingAction::MCTruthTrackingAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
MCTruthTrackingAction::~MCTruthTrackingAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthTrackingAction::PreUserTrackingAction(const G4Track* track)
|
||||
{
|
||||
fmom = G4LorentzVector(track->GetMomentum(), track->GetTotalEnergy());
|
||||
@@ -63,6 +71,8 @@ void MCTruthTrackingAction::PreUserTrackingAction(const G4Track* track)
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void MCTruthTrackingAction::PostUserTrackingAction(const G4Track* track)
|
||||
{
|
||||
|
||||
@@ -72,7 +82,7 @@ void MCTruthTrackingAction::PostUserTrackingAction(const G4Track* track)
|
||||
|
||||
// here (?) make all different checks to decide whether to store the particle
|
||||
//
|
||||
if (trackToBeStored(track))
|
||||
if (TrackToBeStored(track))
|
||||
{
|
||||
MCTruthTrackInformation* mcinf =
|
||||
(MCTruthTrackInformation*) track->GetUserInformation();
|
||||
@@ -107,7 +117,9 @@ void MCTruthTrackingAction::PostUserTrackingAction(const G4Track* track)
|
||||
}
|
||||
}
|
||||
|
||||
G4bool MCTruthTrackingAction::trackToBeStored(const G4Track* track)
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
G4bool MCTruthTrackingAction::TrackToBeStored(const G4Track* track)
|
||||
{
|
||||
MCTruthConfig* config = MCTruthManager::GetInstance()->GetConfig();
|
||||
|
||||
@@ -127,3 +139,5 @@ G4bool MCTruthTrackingAction::trackToBeStored(const G4Track* track)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction.cc 73446 2013-08-27 11:32:59Z gcosmo $
|
||||
// $Id: PrimaryGeneratorAction.cc 99841 2016-10-07 10:09:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,6 +37,9 @@
|
||||
// Author: Witold POKORSKI (Witold.Pokorski@cern.ch)
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
|
||||
#include "G4Event.hh"
|
||||
@@ -46,6 +49,8 @@
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
{
|
||||
G4int n_particle = 1;
|
||||
@@ -61,11 +66,15 @@ PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
particleGun->SetParticleEnergy(3.0*GeV);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
PrimaryGeneratorAction::~PrimaryGeneratorAction()
|
||||
{
|
||||
delete particleGun;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
G4double position = 0.0;
|
||||
@@ -73,3 +82,5 @@ void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -12,6 +12,9 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
05-07-16 I. Hrivnacova (exgps-V10-02-00)
|
||||
- Fixes for Doxygen documentation
|
||||
|
||||
11-05-2015 mma (exgps-V10-01-02)
|
||||
- HistoManager: SetNtupleActivation(false)
|
||||
- macros: new commands for H2
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: exgps.cc 85307 2014-10-27 14:19:10Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/exgps/exgps.cc
|
||||
/// \brief Main program of the eventgenerator/exgps example
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
#endif
|
||||
|
||||
#ifdef G4UI_USE
|
||||
#include "G4UIExecutive.hh"
|
||||
#endif
|
||||
|
||||
#include "GeometryConstruction.hh"
|
||||
#include "PhysicsList.hh"
|
||||
#include "ActionInitialization.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
int main(int argc,char** argv) {
|
||||
|
||||
// Construct the default run manager
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
G4int nThreads = G4Threading::G4GetNumberOfCores();
|
||||
if (argc==3) nThreads = G4UIcommand::ConvertToInt(argv[2]);
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// set mandatory initialization classes
|
||||
GeometryConstruction* detector = new GeometryConstruction;
|
||||
runManager->SetUserInitialization(detector);
|
||||
runManager->SetUserInitialization(new PhysicsList);
|
||||
|
||||
runManager->SetUserInitialization(new ActionInitialization);
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// visualization manager
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
visManager->Initialize();
|
||||
#endif
|
||||
|
||||
// get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
if (argc!=1) // batch mode
|
||||
{
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager->ApplyCommand(command+fileName);
|
||||
}
|
||||
else // interactive mode : define UI session
|
||||
{
|
||||
#ifdef G4UI_USE
|
||||
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
|
||||
#ifdef G4VIS_USE
|
||||
UImanager->ApplyCommand("/control/execute vis.mac");
|
||||
#endif
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
#endif
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
}
|
||||
|
||||
// job termination
|
||||
//
|
||||
delete runManager;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -41,14 +41,14 @@ Registered model factories:
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByTouchedVolume
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
touchedVolumeFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
@@ -73,3 +73,4 @@ Set file name: exgps
|
||||
--> Event 80000 starts.
|
||||
--> Event 90000 starts.
|
||||
... write Root file : exgps.root - done
|
||||
... close Root file : exgps.root - done
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/include/PhysicsList.hh
|
||||
/// \file eventgenerator/exgps/include/PhysicsList.hh
|
||||
/// \brief Definition of the PhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
// $Id: TrackingAction.hh 81498 2014-05-31 13:45:23Z ldesorgh $
|
||||
//
|
||||
/// \file eventgenerator/exgps/include/ TrackingAction.hh
|
||||
/// \file eventgenerator/exgps/include/TrackingAction.hh
|
||||
/// \brief Definition of the TrackingAction class
|
||||
//
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ G4VPhysicalVolume* GeometryConstruction::Construct()
|
||||
fAl_phys,false,0);
|
||||
|
||||
//--------- Visualization attributes -------------------------------
|
||||
universe_log->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
universe_log->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
G4VisAttributes* aVisAtt= new G4VisAttributes(G4Colour(0,1.0,1.0));
|
||||
Al_log->SetVisAttributes(aVisAtt);
|
||||
G4VisAttributes* bVisAtt= new G4VisAttributes(G4Colour(1.0,2.0,.0));
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/src/PhysicsList.cc
|
||||
/// \file eventgenerator/exgps/src/PhysicsList.cc
|
||||
/// \brief Implementation of the PhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -40,7 +40,7 @@ PhysicsList.cc defines only geantino and transportation process.
|
||||
5 concrete action classes. Each concrete generator action shoots geantinoes
|
||||
in a distribution decribed below.
|
||||
|
||||
\subsection ParticleGun_sub_s31 0. Uniform particle direction in a given solid angle
|
||||
\subsection ParticleGun_sub_s30 0. Uniform particle direction in a given solid angle
|
||||
|
||||
spherical angles (alpha,psi) respective to z axis
|
||||
Histograms 5,6 show momentum direction in master frame.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 89707 2015-04-28 07:38:57Z gcosmo $
|
||||
$Id: History 99721 2016-10-03 08:11:44Z gcosmo $
|
||||
-----------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -13,6 +13,18 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
|
||||
03-10-2016 mma (particleGunExample-V10-02-03)
|
||||
- cosmetic in PrimaryGeneratorAction2
|
||||
|
||||
01-10-2016 mma (particleGunExample-V10-02-02)
|
||||
- PrimaryGeneratorAction2: more on coding conventions
|
||||
|
||||
06-08-2016 mma (particleGunExample-V10-02-01)
|
||||
- PrimaryGeneratorAction2: apply coding conventions
|
||||
|
||||
05-07-16 I. Hrivnacova (particleGunExample-V10-02-00)
|
||||
- Fixes for Doxygen documentation
|
||||
|
||||
27-04-2015 mma (particleGunExample-V10-01-01)
|
||||
- PrimaryGeneratorAction1: add randomization of time zero of each event
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr03/include/HistoManager.hh
|
||||
/// \file eventgenerator/particleGun/include/HistoManager.hh
|
||||
/// \brief Definition of the HistoManager class
|
||||
//
|
||||
// $Id: HistoManager.hh 68734 2013-04-05 09:47:02Z gcosmo $
|
||||
// $Id: HistoManager.hh 98304 2016-07-05 15:29:08Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
/// \brief Definition of the PhysicsList class
|
||||
//
|
||||
//
|
||||
// $Id: PhysicsList.hh 68024 2013-03-13 13:42:01Z gcosmo $
|
||||
// $Id: PhysicsList.hh 98734 2016-08-09 10:53:12Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PhysicsList_h
|
||||
#define PhysicsList_h 1
|
||||
@@ -57,5 +57,3 @@ class PhysicsList: public G4VUserPhysicsList
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
/// \brief Definition of the PrimaryGeneratorAction2 class
|
||||
//
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction2.hh 68024 2013-03-13 13:42:01Z gcosmo $
|
||||
// $Id: PrimaryGeneratorAction2.hh 99713 2016-10-03 07:35:42Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PrimaryGeneratorAction2_h
|
||||
#define PrimaryGeneratorAction2_h 1
|
||||
@@ -58,14 +58,14 @@ class PrimaryGeneratorAction2
|
||||
G4double InverseCumul();
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
G4ParticleGun* fParticleGun;
|
||||
|
||||
G4int nPoints; //tabulated function
|
||||
std::vector<G4double> x;
|
||||
std::vector<G4double> f; //f(x)
|
||||
std::vector<G4double> a; //slopes
|
||||
std::vector<G4double> Fc; //cumulative of f
|
||||
G4double fMax; //max(f)
|
||||
G4int fNPoints; //nb of points
|
||||
std::vector<G4double> fX; //abscisses X
|
||||
std::vector<G4double> fY; //values of Y(X)
|
||||
std::vector<G4double> fSlp; //slopes
|
||||
std::vector<G4double> fYC; //cumulative function of Y
|
||||
G4double fYmax; //max(Y)
|
||||
|
||||
private:
|
||||
void InitFunction();
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file eventgenerator/particleGun/include/PrimaryGeneratorMessenger.hh
|
||||
/// \brief Definition of the PrimaryGeneratorMessenger class
|
||||
//
|
||||
// $Id: PrimaryGeneratorMessenger.hh 68024 2013-03-13 13:42:01Z gcosmo $
|
||||
// $Id: PrimaryGeneratorMessenger.hh 98734 2016-08-09 10:53:12Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -52,7 +52,7 @@ class PrimaryGeneratorMessenger: public G4UImessenger
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
PrimaryGeneratorAction* Action;
|
||||
PrimaryGeneratorAction* fAction;
|
||||
|
||||
G4UIdirectory* fDir;
|
||||
G4UIcmdWithAnInteger* fSelectActionCmd;
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file radioactivedecay/rdecay01/include/SteppingVerbose.hh
|
||||
/// \file eventgenerator/particleGun/include/SteppingVerbose.hh
|
||||
/// \brief Definition of the SteppingVerbose class
|
||||
//
|
||||
//
|
||||
// $Id: SteppingVerbose.hh 71030 2013-06-10 09:07:23Z gcosmo $
|
||||
// $Id: SteppingVerbose.hh 98304 2016-07-05 15:29:08Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr03/src/HistoManager.cc
|
||||
/// \file eventgenerator/particleGun/src/HistoManager.cc
|
||||
/// \brief Implementation of the HistoManager class
|
||||
//
|
||||
// $Id: HistoManager.cc 83919 2014-09-23 08:40:35Z gcosmo $
|
||||
// $Id: HistoManager.cc 98304 2016-07-05 15:29:08Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/fParticleGun/src/PrimaryGeneratorfAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorfAction class
|
||||
/// \file eventgenerator/particleGun/src/PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction.cc 83919 2014-09-23 08:40:35Z gcosmo $
|
||||
// $Id: PrimaryGeneratorAction.cc 98304 2016-07-05 15:29:08Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
/// \brief Implementation of the PrimaryGeneratorAction2 class
|
||||
//
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction2.cc 68024 2013-03-13 13:42:01Z gcosmo $
|
||||
// $Id: PrimaryGeneratorAction2.cc 99721 2016-10-03 08:11:44Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PrimaryGeneratorAction2.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
@@ -46,7 +46,7 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction2::PrimaryGeneratorAction2(G4ParticleGun* gun)
|
||||
: particleGun(gun)
|
||||
: fParticleGun(gun)
|
||||
{
|
||||
// energy distribution
|
||||
//
|
||||
@@ -68,56 +68,56 @@ void PrimaryGeneratorAction2::GeneratePrimaries(G4Event* anEvent)
|
||||
G4double psi = twopi*G4UniformRand(); //psi uniform in [0, 2*pi]
|
||||
G4ThreeVector dir(sinAlpha*std::cos(psi),sinAlpha*std::sin(psi),cosAlpha);
|
||||
|
||||
particleGun->SetParticleMomentumDirection(dir);
|
||||
fParticleGun->SetParticleMomentumDirection(dir);
|
||||
|
||||
//set energy from a tabulated distribution
|
||||
//
|
||||
//G4double energy = RejectAccept();
|
||||
G4double energy = InverseCumul();
|
||||
particleGun->SetParticleEnergy(energy);
|
||||
fParticleGun->SetParticleEnergy(energy);
|
||||
|
||||
//create vertex
|
||||
//
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
fParticleGun->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PrimaryGeneratorAction2::InitFunction()
|
||||
{
|
||||
// tabulated function
|
||||
// f is assumed positive, linear per segment, continuous
|
||||
// Y is assumed positive, linear per segment, continuous
|
||||
//
|
||||
nPoints = 16;
|
||||
fNPoints = 16;
|
||||
const G4double xx[] =
|
||||
{ 37*keV, 39*keV, 45*keV, 51*keV, 57*keV, 69*keV, 71*keV, 75*keV,
|
||||
83*keV, 91*keV, 97*keV, 107*keV, 125*keV, 145*keV, 159*keV, 160*keV };
|
||||
|
||||
const G4double ff[] =
|
||||
const G4double yy[] =
|
||||
{ 0.000, 0.077, 0.380, 2.044, 5.535, 15.077, 12.443, 14.766,
|
||||
17.644, 18.518, 17.772, 14.776, 8.372, 3.217, 0.194, 0.000 };
|
||||
|
||||
//copy arrays in std::vector and compute fMax
|
||||
//
|
||||
x.resize(nPoints); f.resize(nPoints);
|
||||
fMax = 0.;
|
||||
for (G4int j=0; j<nPoints; j++) {
|
||||
x[j] = xx[j]; f[j] = ff[j];
|
||||
if (fMax < f[j]) fMax = f[j];
|
||||
fX.resize(fNPoints); fY.resize(fNPoints);
|
||||
fYmax = 0.;
|
||||
for (G4int j=0; j<fNPoints; j++) {
|
||||
fX[j] = xx[j]; fY[j] = yy[j];
|
||||
if (fYmax < fY[j]) fYmax = fY[j];
|
||||
};
|
||||
|
||||
//compute slopes
|
||||
//
|
||||
a.resize(nPoints);
|
||||
for (G4int j=0; j<nPoints-1; j++) {
|
||||
a[j] = (f[j+1] - f[j])/(x[j+1] - x[j]);
|
||||
fSlp.resize(fNPoints);
|
||||
for (G4int j=0; j<fNPoints-1; j++) {
|
||||
fSlp[j] = (fY[j+1] - fY[j])/(fX[j+1] - fX[j]);
|
||||
};
|
||||
|
||||
//compute cumulative function
|
||||
//
|
||||
Fc.resize(nPoints);
|
||||
Fc[0] = 0.;
|
||||
for (G4int j=1; j<nPoints; j++) {
|
||||
Fc[j] = Fc[j-1] + 0.5*(f[j] + f[j-1])*(x[j] - x[j-1]);
|
||||
fYC.resize(fNPoints);
|
||||
fYC[0] = 0.;
|
||||
for (G4int j=1; j<fNPoints; j++) {
|
||||
fYC[j] = fYC[j-1] + 0.5*(fY[j] + fY[j-1])*(fX[j] - fX[j-1]);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -126,21 +126,21 @@ void PrimaryGeneratorAction2::InitFunction()
|
||||
G4double PrimaryGeneratorAction2::RejectAccept()
|
||||
{
|
||||
// tabulated function
|
||||
// f is assumed positive, linear per segment, continuous
|
||||
// Y is assumed positive, linear per segment, continuous
|
||||
//
|
||||
G4double x_rndm = 0., y_rndm = 0., f_inter = -1.;
|
||||
G4double Xrndm = 0., Yrndm = 0., Yinter = -1.;
|
||||
|
||||
while (y_rndm > f_inter) {
|
||||
while (Yrndm > Yinter) {
|
||||
//choose a point randomly
|
||||
x_rndm = x[0] + G4UniformRand()*(x[nPoints-1] - x[0]);
|
||||
y_rndm = G4UniformRand()*fMax;
|
||||
Xrndm = fX[0] + G4UniformRand()*(fX[fNPoints-1] - fX[0]);
|
||||
Yrndm = G4UniformRand()*fYmax;
|
||||
//find bin
|
||||
G4int j = nPoints-2;
|
||||
while ((x[j] > x_rndm) && (j > 0)) j--;
|
||||
//compute f(x_rndm) by linear interpolation
|
||||
f_inter = f[j] + a[j]*(x_rndm - x[j]);
|
||||
G4int j = fNPoints-2;
|
||||
while ((fX[j] > Xrndm) && (j > 0)) j--;
|
||||
//compute Y(x_rndm) by linear interpolation
|
||||
Yinter = fY[j] + fSlp[j]*(Xrndm - fX[j]);
|
||||
};
|
||||
return x_rndm;
|
||||
return Xrndm;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -148,26 +148,26 @@ G4double PrimaryGeneratorAction2::RejectAccept()
|
||||
G4double PrimaryGeneratorAction2::InverseCumul()
|
||||
{
|
||||
// tabulated function
|
||||
// f is assumed positive, linear per segment, continuous
|
||||
// Y is assumed positive, linear per segment, continuous
|
||||
// --> cumulative function is second order polynomial
|
||||
|
||||
//choose y randomly
|
||||
G4double y_rndm = G4UniformRand()*Fc[nPoints-1];
|
||||
G4double Yrndm = G4UniformRand()*fYC[fNPoints-1];
|
||||
//find bin
|
||||
G4int j = nPoints-2;
|
||||
while ((Fc[j] > y_rndm) && (j > 0)) j--;
|
||||
//y_rndm --> x_rndm : Fc(x) is second order polynomial
|
||||
G4double x_rndm = x[j];
|
||||
G4double aa = a[j];
|
||||
if (aa != 0.) {
|
||||
G4double b = f[j]/aa, c = 2*(y_rndm - Fc[j])/aa;
|
||||
G4int j = fNPoints-2;
|
||||
while ((fYC[j] > Yrndm) && (j > 0)) j--;
|
||||
//y_rndm --> x_rndm : fYC(x) is second order polynomial
|
||||
G4double Xrndm = fX[j];
|
||||
G4double a = fSlp[j];
|
||||
if (a != 0.) {
|
||||
G4double b = fY[j]/a, c = 2*(Yrndm - fYC[j])/a;
|
||||
G4double delta = b*b + c;
|
||||
G4int sign = 1; if (aa < 0.) sign = -1;
|
||||
x_rndm += sign*std::sqrt(delta) - b;
|
||||
} else if (f[j] > 0.) {
|
||||
x_rndm += (y_rndm - Fc[j])/f[j];
|
||||
G4int sign = 1; if (a < 0.) sign = -1;
|
||||
Xrndm += sign*std::sqrt(delta) - b;
|
||||
} else if (fY[j] > 0.) {
|
||||
Xrndm += (Yrndm - fYC[j])/fY[j];
|
||||
};
|
||||
return x_rndm;
|
||||
return Xrndm;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file eventgenerator/particleGun/src/PrimaryGeneratorMessenger.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorMessenger class
|
||||
//
|
||||
// $Id: PrimaryGeneratorMessenger.cc 83919 2014-09-23 08:40:35Z gcosmo $
|
||||
// $Id: PrimaryGeneratorMessenger.cc 98734 2016-08-09 10:53:12Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -41,7 +41,7 @@
|
||||
PrimaryGeneratorMessenger::PrimaryGeneratorMessenger
|
||||
(PrimaryGeneratorAction* Gun)
|
||||
:G4UImessenger(),
|
||||
Action(Gun),
|
||||
fAction(Gun),
|
||||
fDir(0),
|
||||
fSelectActionCmd(0)
|
||||
{
|
||||
@@ -73,7 +73,7 @@ void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if (command == fSelectActionCmd)
|
||||
Action->SelectAction(fSelectActionCmd->GetNewIntValue(newValue));
|
||||
fAction->SelectAction(fSelectActionCmd->GetNewIntValue(newValue));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file radioactivedecay/rdecay01/src/SteppingVerbose.cc
|
||||
/// \file eventgenerator/particleGun/src/SteppingVerbose.cc
|
||||
/// \brief Implementation of the SteppingVerbose class
|
||||
//
|
||||
//
|
||||
// $Id: SteppingVerbose.cc 71030 2013-06-10 09:07:23Z gcosmo $
|
||||
// $Id: SteppingVerbose.cc 98304 2016-07-05 15:29:08Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile 85904 2014-11-06 08:50:03Z gcosmo $
|
||||
# $Id: GNUmakefile 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 94007 2015-11-05 10:04:41Z gcosmo $
|
||||
$Id: History 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,25 @@ modifications introduced in the code and keep track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
24/10/2016 I.Hrivnacova (p6decayer-V10-02-05)
|
||||
- Do not use svn:extternal in the tag
|
||||
|
||||
14/10/2016 G.Folger (p6decayer-V10-02-04)
|
||||
- remove direct use of aParticleIterator, use GetParticleTableIterator().
|
||||
fix required by clang39 on Linux and MAC
|
||||
|
||||
21/07/2016 I.Hrivnacova (p6decayer-V10-02-03)
|
||||
- Adding extern keyword to data declarations in pythia6_common_address.c
|
||||
This fixes problem on MAC OSX, where no decay happenned.
|
||||
|
||||
20/07/2016 I.Hrivnacova (p6decayer-V10-02-02)
|
||||
- Fixed compiler warning
|
||||
- Coding guidelines in common
|
||||
|
||||
04/07/2016 I.Hrivnacova (p6decayer-V10-02-01)
|
||||
(p6decayer-V10-02-00)
|
||||
- Fixes for Doxygen documentation
|
||||
|
||||
04/11/2015 - I.Hrivnacova (p6decayer-V10-01-01)
|
||||
- Restored common directory (missing in previous tag)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README 85904 2014-11-06 08:50:03Z gcosmo $
|
||||
$Id: README 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
------------------------------------------------------------
|
||||
|
||||
Example of the external decayer implementation with PYTHIA6
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
This module is going to be enhanced in future. Currently it provides
|
||||
the following sets of classes:
|
||||
|
||||
- \ref extended_common_detectorConstruction :
|
||||
- Detector construction classes
|
||||
- two simple detector construction classes with a messenger
|
||||
|
||||
- \ref extended_common_physicsList :
|
||||
- Physics list classes
|
||||
- ExG4PhysicsList00 - physics list with geantino and chargedgeantino only
|
||||
|
||||
- \ref extended_common_primaryGenerator :
|
||||
- Primary generator classes
|
||||
- two simple primary generator classes (with G4ParticleGun and
|
||||
G4ParticleGeneralSource)
|
||||
|
||||
- \ref extended_common_userActions :
|
||||
- User action classes:
|
||||
- event action and run action classes with messengers
|
||||
|
||||
*/
|
||||
|
||||
@@ -15,6 +15,12 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
20/07/16 I. Hrivnacova (excommon-V10-02-01)
|
||||
- Coding guidelines (redundant empty lines)
|
||||
|
||||
04/07/16 I. Hrivnacova (excommon-V10-02-00)
|
||||
- Fix for Doxygen documentation
|
||||
|
||||
09/06/15 I. Hrivnacova (excommon-V10-01-00)
|
||||
- Added a client-specific prefix to common library and test
|
||||
to avoid name clashes when building all extended examples at once
|
||||
|
||||
-1
@@ -73,6 +73,5 @@ class ExG4DetectorConstruction01 : public G4VUserDetectorConstruction
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: ExG4DetectorConstruction01Messenger.hh 85714 2014-11-04 14:30:40Z ihrivnac $
|
||||
// $Id: ExG4DetectorConstruction01Messenger.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file ExG4DetectorConstruction01Messenger.hh
|
||||
/// \brief Definition of the ExG4DetectorConstruction01Messenger class
|
||||
|
||||
-1
@@ -80,6 +80,5 @@ class ExG4DetectorConstruction02 : public G4VUserDetectorConstruction
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: ExG4DetectorConstruction02Messenger.hh 85714 2014-11-04 14:30:40Z ihrivnac $
|
||||
// $Id: ExG4DetectorConstruction02Messenger.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file ExG4DetectorConstruction02Messenger.hh
|
||||
/// \brief Definition of the ExG4DetectorConstruction02Messenger class
|
||||
|
||||
@@ -49,9 +49,3 @@ class ExG4PhysicsList00: public G4VUserPhysicsList
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-1
@@ -65,4 +65,3 @@ class ExG4PrimaryGeneratorAction01 : public G4VUserPrimaryGeneratorAction
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
-1
@@ -66,4 +66,3 @@ class ExG4PrimaryGeneratorAction02 : public G4VUserPrimaryGeneratorAction
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
-1
@@ -37,7 +37,6 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ExG4DetectorConstruction01::ExG4DetectorConstruction01(
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: ExG4DetectorConstruction01Messenger.cc 85714 2014-11-04 14:30:40Z ihrivnac $
|
||||
// $Id: ExG4DetectorConstruction01Messenger.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file ExG4DetectorConstruction01Messenger.cc
|
||||
/// \brief Implementation of the ExG4DetectorConstruction01Messenger class
|
||||
|
||||
-1
@@ -37,7 +37,6 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ExG4DetectorConstruction02::ExG4DetectorConstruction02(
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
ExG4PhysicsList00::ExG4PhysicsList00()
|
||||
: G4VUserPhysicsList()
|
||||
{}
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
#include "G4RunManager.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
|
||||
|
||||
// Test program which only instantiates classes defined in
|
||||
// examples/common
|
||||
|
||||
@@ -83,4 +82,3 @@ int main()
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: EDecayType.hh 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: EDecayType.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/include/EDecayType.hh
|
||||
/// \brief Definition of the EDecayType enumeration
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Pythia6Decayer.hh 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: G4Pythia6Decayer.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/include/G4Pythia6Decayer.hh
|
||||
/// \brief Definition of the G4Pythia6Decayer class
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class Pythia6Particle;
|
||||
struct Pythia6Particle;
|
||||
class G4Track;
|
||||
class G4DecayProducts;
|
||||
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Pythia6DecayerMessenger.hh 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: G4Pythia6DecayerMessenger.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/include/G4Pythia6DecayerMessenger.hh
|
||||
/// \brief Definition of the G4Pythia6DecayerMessenger class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: P6DExtDecayerPhysics.hh 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: P6DExtDecayerPhysics.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/include/P6DExtDecayerPhysics.hh
|
||||
/// \brief Definition of the P6DExtDecayerPhysics class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: Pythia6.hh 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: Pythia6.hh 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/include/Pythia6.hh
|
||||
/// \brief Definition of the Pythia6 class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: pythia6_decayer.cc 81443 2014-05-28 14:26:55Z gcosmo $
|
||||
// $Id: pythia6_decayer.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/pythia6_decayer.cc
|
||||
/// \brief Main program of the pythia6Decayer example
|
||||
@@ -51,7 +51,6 @@
|
||||
|
||||
#include "Randomize.hh"
|
||||
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
// Choose the Random engine
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4Pythia6Decayer.cc 81443 2014-05-28 14:26:55Z gcosmo $
|
||||
// $Id: G4Pythia6Decayer.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/src/G4Pythia6Decayer.cc
|
||||
/// \brief Implementation of the G4Pythia6Decayer class
|
||||
@@ -79,7 +79,6 @@ G4Pythia6Decayer::~G4Pythia6Decayer()
|
||||
// private methods
|
||||
//
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4ParticleDefinition* G4Pythia6Decayer::
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4Pythia6DecayerMessenger.cc 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: G4Pythia6DecayerMessenger.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/src/G4Pythia6DecayerMessenger.cc
|
||||
/// \brief Implementation of the G4Pythia6DecayerMessenger class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: P6DExtDecayerPhysics.cc 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: P6DExtDecayerPhysics.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/src/P6DExtDecayerPhysics.cc
|
||||
/// \brief Implementation of the P6DExtDecayerPhysics class
|
||||
@@ -75,15 +75,16 @@ void P6DExtDecayerPhysics::ConstructProcess()
|
||||
extDecayer->SetVerboseLevel(1);
|
||||
// The extDecayer will be deleted in G4Decay destructor
|
||||
|
||||
aParticleIterator->reset();
|
||||
while ((*aParticleIterator)())
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while ((*particleIterator)())
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if ( verboseLevel > 1 ) {
|
||||
G4cout << "Setting ext decayer for: "
|
||||
<< aParticleIterator->value()->GetParticleName()
|
||||
<< particleIterator->value()->GetParticleName()
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: Pythia6.cc 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: Pythia6.cc 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
/// \file eventgenerator/pythia/decayer6/src/Pythia6.cc
|
||||
/// \brief Implementation of the Pythia6 class
|
||||
@@ -104,12 +104,20 @@
|
||||
# define type_of_call _stdcall
|
||||
#endif
|
||||
|
||||
// pythia6 functions
|
||||
extern "C" {
|
||||
int type_of_call pycomp(int *kf);
|
||||
void type_of_call py1ent(int&, int&, double&, double&, double&);
|
||||
void* pythia6_common_address(const char*);
|
||||
}
|
||||
|
||||
// Direct declaration of pythia6 common blocks
|
||||
// extern "C" {
|
||||
// extern Pyjets_t pyjets_;
|
||||
// extern Pydat1_t pydat1_;
|
||||
// extern Pydat3_t pydat3_;
|
||||
// }
|
||||
|
||||
Pythia6* Pythia6::fgInstance = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -144,10 +152,16 @@ Pythia6::Pythia6()
|
||||
|
||||
fParticles = new ParticleVector();
|
||||
|
||||
// initialize common-blocks
|
||||
// Initialize common-blocks
|
||||
fPyjets = (Pyjets_t*) pythia6_common_address("PYJETS");
|
||||
fPydat1 = (Pydat1_t*) pythia6_common_address("PYDAT1");
|
||||
fPydat3 = (Pydat3_t*) pythia6_common_address("PYDAT3");
|
||||
|
||||
// Alternative way to initialize common-blocks
|
||||
// usind direct declaration of pythia6 common blocks
|
||||
// fPyjets = &pyjets_;
|
||||
// fPydat1 = &pydat1_;
|
||||
// fPydat3 = &pydat3_;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: pythia6_common_address.c 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
// $Id: pythia6_common_address.c 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
//
|
||||
// According to pythia6_common_address.c provided in Root
|
||||
// Pythia6 distribution:
|
||||
@@ -49,16 +49,14 @@
|
||||
# define type_of_call _stdcall
|
||||
#endif
|
||||
|
||||
int pyjets[2+5*4000+2*2*5*4000];
|
||||
int pydat1[200+2*200+200+2*200];
|
||||
int pydat3[3*500+2*8000+2*8000+5*8000]; /* KNDCAY=8000 */
|
||||
extern int pyjets[2+5*4000+2*2*5*4000];
|
||||
extern int pydat1[200+2*200+200+2*200];
|
||||
extern int pydat3[3*500+2*8000+2*8000+5*8000]; /* KNDCAY=8000 */
|
||||
|
||||
|
||||
void *pythia6_common_address(const char* name)
|
||||
void* pythia6_common_address(const char* name)
|
||||
{
|
||||
if (!strcmp(name,"PYJETS")) return pyjets;
|
||||
else if (!strcmp(name,"PYDAT1")) return pydat1;
|
||||
else if (!strcmp(name,"PYDAT3")) return pydat3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: vis.mac 72244 2013-07-12 08:49:56Z gcosmo $
|
||||
# $Id: vis.mac 100687 2016-10-31 11:20:33Z gcosmo $
|
||||
#
|
||||
# Macro file for the initialization phase
|
||||
# when running in interactive mode
|
||||
|
||||
@@ -13,6 +13,9 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
|
||||
04-07-16 I. Hrivnacova (userPrimaryGenerator-V10-02-00)
|
||||
- Fixes for Doxygen documentation
|
||||
|
||||
04-11-15 I.Hrivnacova (userPrimaryGenerator-V10-01-02)
|
||||
- renaming example to userPrimaryGenerator
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/include/DetectorConstruction.hh
|
||||
/// \file DetectorConstruction.hh
|
||||
/// \brief Definition of the DetectorConstruction class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/include/PhysicsList.hh
|
||||
/// \file PhysicsList.hh
|
||||
/// \brief Definition of the PhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/userPrimaryGenerator/include/PrimaryGenerator.hh
|
||||
/// \file PrimaryGenerator.hh
|
||||
/// \brief Definition of the PrimaryGenerator class
|
||||
//
|
||||
//
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/include/PrimaryGeneratorAction.hh
|
||||
/// \file PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file radioactivedecay/rdecay01/include/SteppingVerbose.hh
|
||||
/// \file SteppingVerbose.hh
|
||||
/// \brief Definition of the SteppingVerbose class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/src/DetectorConstruction.cc
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/src/PhysicsList.cc
|
||||
/// \file PhysicsList.cc
|
||||
/// \brief Implementation of the PhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/src/PrimaryGenerator1.cc
|
||||
/// \file PrimaryGenerator.cc
|
||||
/// \brief Implementation of the PrimaryGenerator1 class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/userPrimaryGenerator/src/PrimaryGeneratorAction.cc
|
||||
/// \file PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file radioactivedecay/rdecay01/src/SteppingVerbose.cc
|
||||
/// \file SteppingVerbose.cc
|
||||
/// \brief Implementation of the SteppingVerbose class
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file eventgenerator/particleGun/particleGun.cc
|
||||
/// \brief Main program of the eventgenerator/particleGun example
|
||||
/// \file eventgenerator/userPrimaryGenerator/userPrimaryGenerator.cc
|
||||
/// \brief Main program of the eventgenerator/userPrimaryGenerator example
|
||||
//
|
||||
//
|
||||
// $Id: particleGun.cc 84868 2014-10-21 21:18:58Z maire $
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -41,14 +41,14 @@ Registered model factories:
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByTouchedVolume
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
touchedVolumeFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
@@ -91,7 +91,7 @@ Index : 0 used in the geometry : Yes
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100000
|
||||
User=0.71s Real=0.71s Sys=0s
|
||||
User=1.55s Real=1.56s Sys=0s
|
||||
G4 kernel has come to Quit state.
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 9 of which, static: 0
|
||||
|
||||
Reference in New Issue
Block a user