Import Geant4 11.2.0 source tree
This commit is contained in:
@@ -110,11 +110,14 @@ G4bool G4ExceptionHandler::Notify(const char* originOfException, const char* exc
|
||||
}
|
||||
abortionForCoreDump = false;
|
||||
break;
|
||||
default:
|
||||
case JustWarning:
|
||||
G4cout << ws_banner << message.str() << "*** This is just a warning message. ***" << we_banner
|
||||
<< G4endl;
|
||||
abortionForCoreDump = false;
|
||||
break;
|
||||
default:
|
||||
abortionForCoreDump = false;
|
||||
break;
|
||||
}
|
||||
return abortionForCoreDump;
|
||||
}
|
||||
|
||||
@@ -255,35 +255,8 @@ void G4PhysicsListHelper::AddTransportation()
|
||||
// --------------------------------------------------------------------
|
||||
void G4PhysicsListHelper::ReadOrdingParameterTable()
|
||||
{
|
||||
G4bool readInFile = false;
|
||||
std::ifstream fIn;
|
||||
|
||||
if (std::getenv("G4ORDPARAMTABLE") != nullptr) {
|
||||
ordParamFileName = std::getenv("G4ORDPARAMTABLE");
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel > 1) {
|
||||
G4cout << "G4PhysicsListHelper::ReadOrdingParameterTable :" << ordParamFileName
|
||||
<< " is assigned to Ordering Parameter Table " << G4endl;
|
||||
}
|
||||
#endif
|
||||
// open input file //
|
||||
fIn.open(ordParamFileName, std::ios::in);
|
||||
// check if the file has been opened successfully
|
||||
if (!fIn) {
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel > 0) {
|
||||
G4cout << "G4PhysicsListHelper::ReadOrdingParameterTable "
|
||||
<< " Can not open file " << ordParamFileName << G4endl;
|
||||
}
|
||||
#endif
|
||||
G4Exception("G4PhysicsListHelper::ReadOrdingParameterTable", "Run0105", JustWarning,
|
||||
"Fail to open ordering parameter table ");
|
||||
}
|
||||
else {
|
||||
readInFile = true;
|
||||
}
|
||||
}
|
||||
|
||||
// create OrdParamTable
|
||||
if (theTable != nullptr) {
|
||||
theTable->clear();
|
||||
@@ -294,22 +267,7 @@ void G4PhysicsListHelper::ReadOrdingParameterTable()
|
||||
theTable = new G4OrdParamTable();
|
||||
sizeOfTable = 0;
|
||||
|
||||
if (readInFile) {
|
||||
// read in the file and fill the table
|
||||
while (!fIn.eof()) {
|
||||
G4PhysicsListOrderingParameter tmp;
|
||||
G4int flag;
|
||||
fIn >> tmp.processTypeName >> tmp.processType >> tmp.processSubType >> tmp.ordering[0]
|
||||
>> tmp.ordering[1] >> tmp.ordering[2] >> flag;
|
||||
tmp.isDuplicable = (flag != 0);
|
||||
theTable->push_back(tmp);
|
||||
++sizeOfTable;
|
||||
}
|
||||
fIn.close();
|
||||
}
|
||||
else {
|
||||
ReadInDefaultOrderingParameter();
|
||||
}
|
||||
ReadInDefaultOrderingParameter();
|
||||
|
||||
if (sizeOfTable == 0) {
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
+16
-8
@@ -45,11 +45,12 @@ G4Run::G4Run()
|
||||
G4Run::~G4Run()
|
||||
{
|
||||
// Objects made by local thread should not be deleted by the master thread
|
||||
G4RunManager::RMType rmType = G4RunManager::GetRunManager()->GetRunManagerType();
|
||||
if (rmType != G4RunManager::masterRM) {
|
||||
for (const auto& itr : *eventVector) {
|
||||
delete itr;
|
||||
}
|
||||
G4RunManager::RMType rmType =
|
||||
G4RunManager::GetRunManager()->GetRunManagerType();
|
||||
if(rmType != G4RunManager::masterRM)
|
||||
{
|
||||
for(auto& itr : *eventVector)
|
||||
{ delete itr; }
|
||||
}
|
||||
delete eventVector;
|
||||
}
|
||||
@@ -64,9 +65,8 @@ void G4Run::RecordEvent(const G4Event*)
|
||||
void G4Run::Merge(const G4Run* right)
|
||||
{
|
||||
numberOfEvent += right->numberOfEvent;
|
||||
for (const auto& itr : *right->eventVector) {
|
||||
eventVector->push_back(itr);
|
||||
}
|
||||
for(auto& itr : *(right->eventVector))
|
||||
{ eventVector->push_back(itr); }
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -74,3 +74,11 @@ void G4Run::StoreEvent(G4Event* evt)
|
||||
{
|
||||
eventVector->push_back(evt);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
void G4Run::MergeSubEvent(G4Event* /*masterEv*/, const G4Event* /*subEv*/)
|
||||
{
|
||||
// trajectories are merged here.......
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,10 @@ G4WorkerRunManager::G4WorkerRunManager() : G4RunManager(workerRM)
|
||||
"applications.";
|
||||
G4Exception("G4WorkerRunManager::G4WorkerRunManager()", "Run0103", FatalException, msg);
|
||||
#endif
|
||||
G4ParticleTable::GetParticleTable()->WorkerG4ParticleTable();
|
||||
// G4ParticleTable::GetParticleTable()->WorkerG4ParticleTable();
|
||||
// WorkerG4ParticleTable() would be performed twice,
|
||||
// as it is called already from G4ParticleTable::GetParticleTable()
|
||||
// which is called beforehand by other Geant4 classes
|
||||
G4ScoringManager* masterScM = G4MTRunManager::GetMasterScoringManager();
|
||||
if (masterScM != nullptr) G4ScoringManager::GetScoringManager(); // TLS instance for a worker
|
||||
|
||||
@@ -114,6 +117,7 @@ G4WorkerRunManager::G4WorkerRunManager() : G4RunManager(workerRM)
|
||||
// --------------------------------------------------------------------
|
||||
G4WorkerRunManager::~G4WorkerRunManager()
|
||||
{
|
||||
CleanUpPreviousEvents();
|
||||
// Put these pointers to zero: owned by master thread
|
||||
// If not to zero, the base class destructor will attempt to
|
||||
// delete them
|
||||
|
||||
Reference in New Issue
Block a user