From e6955f4723e984b216b6c01425d1834ce581c1db Mon Sep 17 00:00:00 2001
From: deserevi <deserevi@nptool>
Date: Mon, 7 Feb 2011 14:56:15 +0000
Subject: [PATCH] * Patch Analysis.cc files for taking into account
 NPOptionManager

---
 NPAnalysis/10He_Riken/src/Analysis.cc | 40 ++++++++++++++++++++-------
 NPAnalysis/Gaspard/src/Analysis.cc    | 32 +++++++++++++++------
 NPAnalysis/Hyde/src/Analysis.cc       |  1 +
 NPAnalysis/Paris/src/Analysis.cc      | 31 ++++++++++++++++-----
 NPAnalysis/Template/src/Analysis.cc   | 37 ++++++++++++++++++-------
 NPAnalysis/W1/src/Analysis.cc         | 31 +++++++++++++++------
 NPAnalysis/must2/src/Analysis.cc      |  1 +
 7 files changed, 129 insertions(+), 44 deletions(-)

diff --git a/NPAnalysis/10He_Riken/src/Analysis.cc b/NPAnalysis/10He_Riken/src/Analysis.cc
index 283525a78..087aecf1b 100644
--- a/NPAnalysis/10He_Riken/src/Analysis.cc
+++ b/NPAnalysis/10He_Riken/src/Analysis.cc
@@ -3,17 +3,35 @@ using namespace std;
 
 int main(int argc,char** argv)
 {	
+   // command line parsing
+   NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv);
+
+   // Instantiate RootInput
+   string runToReadfileName = myOptionManager->GetRunToReadFile();
+   RootInput:: getInstance(runToReadfileName);
+
+   // if input files are not given, use those from TAsciiFile
+   if (myOptionManager->IsDefault("EventGenerator")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("EventGenerator");
+      myOptionManager->SetReactionFile(name);
+   }
+   if (myOptionManager->IsDefault("DetectorConfiguration")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+      myOptionManager->SetDetectorFile(name);
+   }
+
+   // Instantiate RootOutput
+   RootOutput::getInstance("Analysis/Paris_AnalyzedData", "AnalysedTree");
+
+   // get input files from NPOptionManager
+   string reactionfileName    = myOptionManager->GetReactionFile();
+   string detectorfileName    = myOptionManager->GetDetectorFile();
+   string calibrationfileName = myOptionManager->GetCalibrationFile();
+   string OutputfileName      = myOptionManager->GetOutputFile();
+
+   // Instantiate RootOutput singleton classes
+   RootOutput::getInstance("Analysis/10He_AnalysedData", "AnalyzedTree");
 
-	NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv)  ;
-	string detectorfileName 		= myOptionManager->GetDetectorFile()	      ;
-	string calibrationfileName 	= myOptionManager->GetCalibrationFile()	    ;
-	string runToReadfileName 		= myOptionManager->GetRunToReadFile()       ;
-	
-	//	First of All instantiate RootInput and Output
-	//	Detector will be attached later
-	RootInput:: getInstance(runToReadfileName)	;
-	RootOutput::getInstance("Analysis/10HeRiken_AnalyzedData", "AnalyzedTree")	;
-	
 	//	Instantiate some Reaction
 	NPL::Reaction*  He10Reaction = new Reaction								;
 	He10Reaction	->	ReadConfigurationFile("10He.reaction")	;
@@ -244,6 +262,8 @@ int main(int argc,char** argv)
 	cout << endl << "/////////////////////////////////"<< endl<< endl ;
 	myHist1D->Write();
 	RootOutput::getInstance()->Destroy();
+	RootInput::getInstance()->Destroy();
+   NPOptionManager::getInstance()->Destroy();
 	return 0	;
 }
 
diff --git a/NPAnalysis/Gaspard/src/Analysis.cc b/NPAnalysis/Gaspard/src/Analysis.cc
index 89f73c390..d7f3fa73f 100644
--- a/NPAnalysis/Gaspard/src/Analysis.cc
+++ b/NPAnalysis/Gaspard/src/Analysis.cc
@@ -7,17 +7,33 @@ int main(int argc,char** argv)
 {	
    // command line parsing
    NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv);
-   string reactionfileName          = myOptionManager->GetReactionFile();
-	string detectorfileName          = myOptionManager->GetDetectorFile();
-	string calibrationfileName       = myOptionManager->GetCalibrationFile();
-	string runToReadfileName         = myOptionManager->GetRunToReadFile();
-	string OutputfileName            = myOptionManager->GetOutputFile();
 
-   // Instantiate RootInput and RootOutput singleton classes
+   // Instantiate RootInput
+   string runToReadfileName = myOptionManager->GetRunToReadFile();
    RootInput:: getInstance(runToReadfileName);
-//   RootOutput::getInstance("Analysis/"+OutputfileName, "AnalyzedTree")	;
+
+   // if input files are not given, use those from TAsciiFile
+   if (myOptionManager->IsDefault("EventGenerator")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("EventGenerator");
+      myOptionManager->SetReactionFile(name);
+   }
+   if (myOptionManager->IsDefault("DetectorConfiguration")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+      myOptionManager->SetDetectorFile(name);
+   }
+
+   // Instantiate RootOutput
+   RootOutput::getInstance("Analysis/Paris_AnalyzedData", "AnalysedTree");
+
+   // get input files from NPOptionManager
+   string reactionfileName    = myOptionManager->GetReactionFile();
+   string detectorfileName    = myOptionManager->GetDetectorFile();
+   string calibrationfileName = myOptionManager->GetCalibrationFile();
+   string OutputfileName      = myOptionManager->GetOutputFile();
+
+   // Instantiate RootOutput singleton classes
    RootOutput::getInstance("Analysis/Gaspard_AnalyzedData", "AnalyzedTree");
- 
+
    // Initialize the reaction
    NPL::Reaction* myReaction = new Reaction();
    myReaction->ReadConfigurationFile(reactionfileName);
diff --git a/NPAnalysis/Hyde/src/Analysis.cc b/NPAnalysis/Hyde/src/Analysis.cc
index 89c209828..ed0b9fc24 100644
--- a/NPAnalysis/Hyde/src/Analysis.cc
+++ b/NPAnalysis/Hyde/src/Analysis.cc
@@ -189,6 +189,7 @@ int main(int argc,char** argv)
    // delete singleton classes
    RootOutput::getInstance()->Destroy();
    RootInput::getInstance()->Destroy();
+   NPOptionManager::getInstance()->Destroy();
 
    return 0;
 }
diff --git a/NPAnalysis/Paris/src/Analysis.cc b/NPAnalysis/Paris/src/Analysis.cc
index a7a44608a..cfb1ef3cd 100644
--- a/NPAnalysis/Paris/src/Analysis.cc
+++ b/NPAnalysis/Paris/src/Analysis.cc
@@ -6,16 +6,32 @@ using namespace std;
 
 int main(int argc,char** argv)
 {	
+   // command line parsing
+   NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv);
 
-  NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv)  ;
-	string detectorfileName 		= myOptionManager->GetDetectorFile()	      ;
-	string reactionfileName 	  = myOptionManager->GetCalibrationFile()	    ;
-	string runToReadfileName 		= myOptionManager->GetRunToReadFile()       ;
-	
-   // Instantiate RootInput and RootOutput singleton classes
+   // Instantiate RootInput
+   string runToReadfileName = myOptionManager->GetRunToReadFile();
    RootInput:: getInstance(runToReadfileName);
-   RootOutput::getInstance("Analysis/Paris_AnalyzedData", "AnalyzedTree");
 
+   // if input files are not given, use those from TAsciiFile
+   if (myOptionManager->IsDefault("EventGenerator")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("EventGenerator");
+      myOptionManager->SetReactionFile(name);
+   }
+   if (myOptionManager->IsDefault("DetectorConfiguration")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+      myOptionManager->SetDetectorFile(name);
+   }
+
+   // Instantiate RootOutput
+   RootOutput::getInstance("Analysis/Paris_AnalyzedData", "AnalysedTree");
+
+   // get input files from NPOptionManager
+   string reactionfileName    = myOptionManager->GetReactionFile();
+   string detectorfileName    = myOptionManager->GetDetectorFile();
+   string calibrationfileName = myOptionManager->GetCalibrationFile();
+   string OutputfileName      = myOptionManager->GetOutputFile();
+	
    // Initialize the reaction
    NPL::Reaction* myReaction = new Reaction();
    myReaction->ReadConfigurationFile(reactionfileName);
@@ -177,6 +193,7 @@ int main(int argc,char** argv)
    // delete singleton classes
    RootOutput::getInstance()->Destroy();
    RootInput::getInstance()->Destroy();
+   NPOptionManager::getInstance()->Destroy();
 
 
 
diff --git a/NPAnalysis/Template/src/Analysis.cc b/NPAnalysis/Template/src/Analysis.cc
index dc93cb4a1..8da4c154f 100644
--- a/NPAnalysis/Template/src/Analysis.cc
+++ b/NPAnalysis/Template/src/Analysis.cc
@@ -4,17 +4,31 @@ using namespace std;
 
 int main(int argc, char** argv)
 {
-   // Parse command line
-   NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc, argv);
-   string detectorfileName          = myOptionManager->GetDetectorFile();
-   string reactionfileName          = myOptionManager->GetCalibrationFile();
-   string calibrationfileName       = myOptionManager->GetCalibrationFile();
-   string runToReadfileName         = myOptionManager->GetRunToReadFile();
-
-   // First of All instantiate RootInput and Output
-   // Detector will be attached later
+   // command line parsing
+   NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv);
+
+   // Instantiate RootInput
+   string runToReadfileName = myOptionManager->GetRunToReadFile();
    RootInput:: getInstance(runToReadfileName);
-   RootOutput::getInstance("Analysis/Template_AnalyzedData", "AnalyzedTree");
+
+   // if input files are not given, use those from TAsciiFile
+   if (myOptionManager->IsDefault("EventGenerator")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("EventGenerator");
+      myOptionManager->SetReactionFile(name);
+   }
+   if (myOptionManager->IsDefault("DetectorConfiguration")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+      myOptionManager->SetDetectorFile(name);
+   }
+
+   // Instantiate RootOutput
+   RootOutput::getInstance("Analysis/Template_AnalyzedData", "AnalysedTree");
+
+   // get input files from NPOptionManager
+   string reactionfileName    = myOptionManager->GetReactionFile();
+   string detectorfileName    = myOptionManager->GetDetectorFile();
+   string calibrationfileName = myOptionManager->GetCalibrationFile();
+   string OutputfileName      = myOptionManager->GetOutputFile();
 
    // Instantiate a Reaction
    NPL::Reaction* myReaction = new Reaction();
@@ -66,5 +80,8 @@ int main(int argc, char** argv)
    cout << "A total of " << nentries << " event has been annalysed " << endl ;
 
    RootOutput::getInstance()->Destroy();
+   RootInput::getInstance()->Destroy();
+   NPOptionManager::getInstance()->Destroy();
+
    return 0 ;
 }
diff --git a/NPAnalysis/W1/src/Analysis.cc b/NPAnalysis/W1/src/Analysis.cc
index 532dd5012..3434851aa 100644
--- a/NPAnalysis/W1/src/Analysis.cc
+++ b/NPAnalysis/W1/src/Analysis.cc
@@ -7,17 +7,30 @@ int main(int argc,char** argv)
 {	
    // command line parsing
    NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv);
-   string reactionfileName          = myOptionManager->GetReactionFile();
-	string detectorfileName          = myOptionManager->GetDetectorFile();
-	string calibrationfileName       = myOptionManager->GetCalibrationFile();
-	string runToReadfileName         = myOptionManager->GetRunToReadFile();
-	string OutputfileName            = myOptionManager->GetOutputFile();
 
-   // Instantiate RootInput and RootOutput singleton classes
+   // Instantiate RootInput
+   string runToReadfileName = myOptionManager->GetRunToReadFile();
    RootInput:: getInstance(runToReadfileName);
-//   RootOutput::getInstance("Analysis/"+OutputfileName, "AnalyzedTree")	;
-   RootOutput::getInstance("Analysis/W1_AnalyzedData", "AnalyzedTree");
- 
+
+   // if input files are not given, use those from TAsciiFile
+   if (myOptionManager->IsDefault("EventGenerator")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("EventGenerator");
+      myOptionManager->SetReactionFile(name);
+   }
+   if (myOptionManager->IsDefault("DetectorConfiguration")) {
+      string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration");
+      myOptionManager->SetDetectorFile(name);
+   }
+
+   // Instantiate RootOutput
+   RootOutput::getInstance("Analysis/Must2_AnalysedData", "AnalysedTree");
+
+   // get input files from NPOptionManager
+   string reactionfileName    = myOptionManager->GetReactionFile();
+   string detectorfileName    = myOptionManager->GetDetectorFile();
+   string calibrationfileName = myOptionManager->GetCalibrationFile();
+   string OutputfileName      = myOptionManager->GetOutputFile();
+
    // Initialize the reaction
    cout << endl << "/////////// Event generator ///////////" << endl;
    NPL::Reaction* myReaction = new Reaction();
diff --git a/NPAnalysis/must2/src/Analysis.cc b/NPAnalysis/must2/src/Analysis.cc
index 7aef0fccf..3f9e7dac8 100644
--- a/NPAnalysis/must2/src/Analysis.cc
+++ b/NPAnalysis/must2/src/Analysis.cc
@@ -189,6 +189,7 @@ int main(int argc,char** argv)
    cout << endl << " ///////////////////////////////////// "<< endl<< endl ;
    RootOutput::getInstance()->Destroy();
    RootInput::getInstance()->Destroy();
+   NPOptionManager::getInstance()->Destroy();
    
    return 0;
 }
-- 
GitLab