Skip to content
Snippets Groups Projects
Commit 31a5511b authored by deserevi's avatar deserevi
Browse files

* New features in RootOutput class

   + TAsciiFile classes containing input files are now files here and not
     in Simulation.cc anymore
parent 4325f465
No related branches found
No related tags found
No related merge requests found
......@@ -2,5 +2,5 @@ TTreeName
SimulatedTree
RootFileName
% ../../Outputs/Simulation/myResult.root
../../Outputs/Simulation/pipo.root
../../Outputs/Simulation/dummy.root
% ../../Outputs/Simulation/fe60dp_1mg.root
......@@ -41,6 +41,7 @@ RootInput* RootInput::getInstance(string configFileName)
}
void RootInput::Destroy()
{
if (instance != 0) {
......@@ -49,6 +50,8 @@ void RootInput::Destroy()
}
}
// fileNameBase doit etre le nom du TChain.
RootInput::RootInput(string configFileName)
{
......@@ -110,7 +113,9 @@ RootInput::RootInput(string configFileName)
cout << "WARNING: Token not found for InputTree Declaration : Input Tree may not be instantiate properly" << endl;
}
void RootInput::AddFriendChain( string RunToAdd)
void RootInput::AddFriendChain(string RunToAdd)
{
NumberOfFriend++;
ostringstream suffix_buffer;
......@@ -180,6 +185,8 @@ void RootInput::AddFriendChain( string RunToAdd)
cout << "/////////////////////////////////" << endl;
}
RootInput::~RootInput()
{
delete pRootChain;
......
......@@ -68,7 +68,7 @@ public:
TChain* GetChain() {return pRootChain;};
// Add a Friend chain to the input chain
void AddFriendChain( string RunToAdd);
void AddFriendChain(string RunToAdd);
private:
TChain *pRootChain;
......
......@@ -9,12 +9,13 @@
* Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr *
* *
* Creation Date : 21/07/09 *
* Last update : *
* Last update : 03/02/11 *
*---------------------------------------------------------------------------*
* Decription: This class is a singleton class which deals with the ROOT *
* output file and tree both for NPSimulation and NPAnalysis. *
*---------------------------------------------------------------------------*
* Comment: *
* + 03/02/11: Add support for TAsciiFile objects (N. de Sereville) *
* *
* *
*****************************************************************************/
......@@ -23,6 +24,7 @@
#include <cstdlib>
#include "RootOutput.h"
#include "NPOptionManager.h"
using namespace std;
......@@ -53,18 +55,51 @@ RootOutput::RootOutput(TString fileNameBase, TString treeNameBase)
{
// The file extension is added to the file name:
TString GlobalPath = getenv("NPTOOL");
TString fileName = GlobalPath + "/Outputs/" + fileNameBase + ".root";
TString fileName = GlobalPath + "/Outputs/";
if (fileNameBase.Contains("root")) fileName += fileNameBase;
else fileName += fileNameBase + ".root";
// The ROOT file is created
pRootFile = new TFile(fileName, "RECREATE");
pRootTree = new TTree(treeNameBase, "Data created / analyzed with the NPTool package");
pRootList = new TList();
pEventGenerator = new TAsciiFile();
// Init TAsciiFile objects
InitAsciiFiles();
}
void RootOutput::InitAsciiFiles()
{
// get NPOptionManager pointer
NPOptionManager* OptionManager = NPOptionManager::getInstance();
// Event generator
// Get file name from NPOptionManager
TString fileNameEG = OptionManager->GetReactionFile();
pEventGenerator = new TAsciiFile();
pEventGenerator->SetNameTitle("EventGenerator", fileNameEG.Data());
pEventGenerator->Append(fileNameEG.Data());
// Detector configuration
// Get file name from NPOptionManager
TString fileNameDC = OptionManager->GetDetectorFile();
pDetectorConfiguration = new TAsciiFile();
pCalibrationFile = new TAsciiFile();
pRunToTreatFile = new TAsciiFile();
pDetectorConfiguration->SetNameTitle("DetectorConfiguration", fileNameDC.Data());
pDetectorConfiguration->Append(fileNameDC.Data());
// Run to treat file
// Get file name from NPOptionManager
TString fileNameRT = OptionManager->GetRunToReadFile();
pRunToTreatFile = new TAsciiFile();
if (fileNameRT != OptionManager->GetDefaultRunToReadFile()) {
pRunToTreatFile->SetNameTitle("RunToTreat", fileNameRT.Data());
pRunToTreatFile->Append(fileNameRT.Data());
}
// Calibration files
pCalibrationFile = new TAsciiFile();
}
......
......@@ -9,12 +9,13 @@
* Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr *
* *
* Creation Date : 21/07/09 *
* Last update : *
* Last update : 03/02/11 *
*---------------------------------------------------------------------------*
* Decription: This class is a singleton class which deals with the ROOT *
* output file and tree both for NPSimulation and NPAnalysis. *
*---------------------------------------------------------------------------*
* Comment: *
* + 03/02/11: Add support for TAsciiFile objects (N. de Sereville) *
* *
* *
*****************************************************************************/
......@@ -63,10 +64,13 @@ private:
// The static instance of the RootOutput class:
static RootOutput* instance;
private:
void InitAsciiFiles();
public:
TFile* GetFile() {return pRootFile;};
TTree* GetTree() {return pRootTree;};
TList* GetList() {return pRootList;};
TFile* GetFile() {return pRootFile;}
TTree* GetTree() {return pRootTree;}
TList* GetList() {return pRootList;}
TAsciiFile* GetAsciiFileEventGenerator() {return pEventGenerator;}
TAsciiFile* GetAsciiFileDetectorConfiguration() {return pDetectorConfiguration;}
TAsciiFile* GetAsciiFileCalibration() {return pCalibrationFile;}
......
......@@ -40,11 +40,17 @@ NPOptionManager* NPOptionManager::getInstance(int argc, char** argv)
NPOptionManager::NPOptionManager(int argc, char** argv)
{
// Default Setting
fReactionFileName = "myReaction.reaction" ;
fDetectorFileName = "myDetector.detector" ;
fOutputFileName = "myResult" ;
fRunToReadFileName = "RunToRead.txt" ;
fCalibrationFileName = "Calibration.txt" ;
fDefaultReactionFileName = "defaultReaction.reaction";
fDefaultDetectorFileName = "defaultDetector.detector";
fDefaultOutputFileName = "myResult.root";
fDefaultRunToReadFileName = "defaultRunToTreat.txt";
fDefaultCalibrationFileName = "Calibration.txt";
// Assigned values
fReactionFileName = fDefaultReactionFileName;
fDetectorFileName = fDefaultDetectorFileName;
fOutputFileName = fDefaultOutputFileName;
fRunToReadFileName = fDefaultRunToReadFileName;
fCalibrationFileName = fDefaultCalibrationFileName;
fDisableAllBranchOption = false;
for (int i = 0; i < argc; i++) {
......
......@@ -65,14 +65,28 @@ class NPOptionManager
void CheckDetectorConfiguration();
public:
string GetReactionFilePath() {return fReactionFileName;}
string GetDetectorFilePath() {return fDetectorFileName;}
string GetRunToReadFilePath() {return fRunToReadFileName;}
string GetCalibrationFilePath() {return fCalibrationFileName;}
string GetOutputFilePath() {return fOutputFileName;}
// default values
string GetDefaultReactionFile() {return fDefaultReactionFileName;}
string GetDefaultDetectorFile() {return fDefaultDetectorFileName;}
string GetDefaultRunToReadFile() {return fDefaultRunToReadFileName;}
string GetDefaultCalibrationFile() {return fDefaultCalibrationFileName;}
string GetDefaultOutputFile() {return fDefaultOutputFileName;}
// assigned values
string GetReactionFile() {return fReactionFileName;}
string GetDetectorFile() {return fDetectorFileName;}
string GetRunToReadFile() {return fRunToReadFileName;}
string GetCalibrationFile() {return fCalibrationFileName;}
string GetOutputFile() {return fOutputFileName;}
bool GetDisableAllBranchOption() {return fDisableAllBranchOption;}
private:
// default values
string fDefaultReactionFileName;
string fDefaultDetectorFileName;
string fDefaultRunToReadFileName;
string fDefaultCalibrationFileName;
string fDefaultOutputFileName;
// assigned values
string fReactionFileName;
string fDetectorFileName;
string fRunToReadFileName;
......
......@@ -29,8 +29,8 @@ int main(int argc, char** argv)
{
// Initialize NPOptionManager object
NPOptionManager* OptionManager = NPOptionManager::getInstance(argc, argv);
G4String EventGeneratorFileName = OptionManager->GetReactionFilePath();
G4String DetectorFileName = OptionManager->GetDetectorFilePath();
G4String EventGeneratorFileName = OptionManager->GetReactionFile();
G4String DetectorFileName = OptionManager->GetDetectorFile();
// my Verbose output class
G4VSteppingVerbose::SetInstance(new SteppingVerbose);
......@@ -53,21 +53,7 @@ int main(int argc, char** argv)
///////////////////////////////////////////////////////////////
///////////////// Initializing the Root Output ////////////////
///////////////////////////////////////////////////////////////
RootOutput::getInstance("Simulation/" + OptionManager->GetOutputFilePath());
// store configuration files
G4String GlobalPath = getenv("NPTOOL");
// event generator file
G4String PathEG = GlobalPath + "/Inputs/EventGenerator/";
G4String EGFileName = PathEG + EventGeneratorFileName;
TAsciiFile *asciiFileEG = RootOutput::getInstance()->GetAsciiFileEventGenerator();
asciiFileEG->SetNameTitle("EventGenerator", "EventGenerator input file");
asciiFileEG->Append(EGFileName);
// detector configuration file
G4String PathDC = GlobalPath + "/Inputs/DetectorConfiguration/";
G4String DCFileName = PathDC + DetectorFileName;
TAsciiFile *asciiFileDC = RootOutput::getInstance()->GetAsciiFileDetectorConfiguration();
asciiFileDC->SetNameTitle("DetectorConfiguration", "DetectorConfiguration input file");
asciiFileDC->Append(DCFileName);
RootOutput::getInstance("Simulation/" + OptionManager->GetOutputFile());
///////////////////////////////////////////////////////////////
////////////// Reading Detector Configuration /////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment