Import Geant4 10.4.0 source tree
This commit is contained in:
@@ -39,7 +39,8 @@ using namespace G4Analysis;
|
||||
|
||||
//_____________________________________________________________________________
|
||||
G4RootNtupleManager::G4RootNtupleManager(const G4AnalysisManagerState& state,
|
||||
G4int nofMainManagers)
|
||||
G4int nofMainManagers,
|
||||
G4bool rowWise)
|
||||
: G4TNtupleManager<tools::wroot::ntuple>(state),
|
||||
fCreateMode(G4NtupleCreateMode::kUndefined),
|
||||
fFileManager(nullptr),
|
||||
@@ -48,7 +49,7 @@ G4RootNtupleManager::G4RootNtupleManager(const G4AnalysisManagerState& state,
|
||||
{
|
||||
for ( G4int i=0; i<nofMainManagers; ++i) {
|
||||
fMainNtupleManagers.push_back(
|
||||
new G4RootMainNtupleManager(this, fState));
|
||||
new G4RootMainNtupleManager(this, rowWise, fState));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,29 +102,28 @@ void G4RootNtupleManager::SetCreateMode()
|
||||
}
|
||||
|
||||
//_____________________________________________________________________________
|
||||
void G4RootNtupleManager::CreateTNtuple(
|
||||
G4TNtupleDescription<tools::wroot::ntuple>* ntupleDescription,
|
||||
const G4String& name, const G4String& title)
|
||||
void G4RootNtupleManager::CreateTNtuple(
|
||||
G4TNtupleDescription<tools::wroot::ntuple>* ntupleDescription)
|
||||
{
|
||||
// Set create mode if not yet defined
|
||||
SetCreateMode();
|
||||
|
||||
if ( fCreateMode == G4NtupleCreateMode::kNoMergeAfterOpen ) {
|
||||
if ( ! fNtupleDirectory ) {
|
||||
G4String inFunction = "G4RootNtupleManager::::CreateTNtuple";
|
||||
G4ExceptionDescription description;
|
||||
description << " "
|
||||
<< "Cannot create ntuple. Ntuple directory does not exist." << G4endl;
|
||||
G4Exception(inFunction, "Analysis_W002", JustWarning, description);
|
||||
return;
|
||||
}
|
||||
|
||||
ntupleDescription->fNtuple
|
||||
= new tools::wroot::ntuple(*fNtupleDirectory, name, title);
|
||||
ntupleDescription->fIsNtupleOwner = false;
|
||||
// ntuple object is deleted automatically when closing a file
|
||||
fNtupleVector.push_back(ntupleDescription->fNtuple);
|
||||
if ( ! fNtupleDirectory ) {
|
||||
G4String inFunction = "G4RootNtupleManager::::CreateTNtuple";
|
||||
G4ExceptionDescription description;
|
||||
description << " "
|
||||
<< "Cannot create ntuple. Ntuple directory does not exist." << G4endl;
|
||||
G4Exception(inFunction, "Analysis_W002", JustWarning, description);
|
||||
return;
|
||||
}
|
||||
|
||||
ntupleDescription->fNtuple
|
||||
= new tools::wroot::ntuple(
|
||||
*fNtupleDirectory, ntupleDescription->fNtupleBooking);
|
||||
|
||||
auto basketSize = fFileManager->GetBasketSize();
|
||||
ntupleDescription->fNtuple->set_basket_size(basketSize);
|
||||
|
||||
ntupleDescription->fIsNtupleOwner = false;
|
||||
// ntuple object is deleted automatically when closing a file
|
||||
fNtupleVector.push_back(ntupleDescription->fNtuple);
|
||||
}
|
||||
|
||||
//_____________________________________________________________________________
|
||||
@@ -131,28 +131,10 @@ void G4RootNtupleManager::CreateTNtupleFromBooking(
|
||||
G4TNtupleDescription<tools::wroot::ntuple>* ntupleDescription)
|
||||
{
|
||||
if ( fCreateMode == G4NtupleCreateMode::kNoMergeBeforeOpen ) {
|
||||
|
||||
if ( ! fNtupleDirectory ) {
|
||||
G4String inFunction = "G4RootNtupleManager::::CreateTNtuple";
|
||||
G4ExceptionDescription description;
|
||||
description << " "
|
||||
<< "Cannot create ntuple. Ntuple directory does not exist." << G4endl;
|
||||
G4Exception(inFunction, "Analysis_W002", JustWarning, description);
|
||||
return;
|
||||
}
|
||||
|
||||
ntupleDescription->fNtuple
|
||||
= new tools::wroot::ntuple(
|
||||
*fNtupleDirectory, ntupleDescription->fNtupleBooking);
|
||||
|
||||
auto basketSize = fFileManager->GetBasketSize();
|
||||
ntupleDescription->fNtuple->set_basket_size(basketSize);
|
||||
|
||||
ntupleDescription->fIsNtupleOwner = false;
|
||||
// ntuple object is deleted automatically when closing a file
|
||||
fNtupleVector.push_back(ntupleDescription->fNtuple);
|
||||
|
||||
CreateTNtuple(ntupleDescription);
|
||||
}
|
||||
|
||||
|
||||
if ( fCreateMode == G4NtupleCreateMode::kMainBeforeOpen ) {
|
||||
auto counter = 0;
|
||||
for ( auto manager : fMainNtupleManagers ) {
|
||||
@@ -172,6 +154,15 @@ void G4RootNtupleManager::FinishTNtuple(
|
||||
{
|
||||
// Create main ntuples
|
||||
|
||||
// Set create mode if not yet defined
|
||||
SetCreateMode();
|
||||
|
||||
// Create ntuple if file is open
|
||||
if ( fCreateMode == G4NtupleCreateMode::kNoMergeAfterOpen ) {
|
||||
CreateTNtuple(ntupleDescription);
|
||||
}
|
||||
|
||||
// Create main ntuples if file is open
|
||||
if ( fCreateMode == G4NtupleCreateMode::kMainAfterOpen ) {
|
||||
auto counter = 0;
|
||||
for ( auto manager : fMainNtupleManagers ) {
|
||||
|
||||
Reference in New Issue
Block a user