#include "GeneAnalysisManager.hh" GeneAnalysisManager* GeneAnalysisManager::instance = 0; GeneAnalysisManager::GeneAnalysisManager() : analysisFileName("Simulation_Ne22an.root"), theTFile(0), tr(0) { memset(&mydata, 0x00, sizeof(mydata)); } GeneAnalysisManager::~GeneAnalysisManager() { delete theTFile; theTFile = 0; delete tr; tr = 0; } GeneAnalysisManager* GeneAnalysisManager::GetInstance() { if (instance == 0) instance = new GeneAnalysisManager; return instance; } void GeneAnalysisManager::SetAnalysisFileName(G4String aFileName) { analysisFileName = aFileName; } void GeneAnalysisManager::FillDetData(G4int ndets, G4double* edet, G4int* ndet) { mydata.Ndets = ndets; for (G4int i = 0; i < ndets; i++) { mydata.detE[i] = edet[i]; mydata.detId[i] = ndet[i]; } } void GeneAnalysisManager::FillAng(G4double thetacm, G4double thetalab) { mydata.Thetacm = thetacm; mydata.Thetalab = thetalab; } void GeneAnalysisManager::book() { // delete all associated variables created via new, moreover it delete itself. if (theTFile != 0) delete theTFile; theTFile = new TFile(analysisFileName, "RECREATE"); // create a tree tr = new TTree("SimData1", "Ne22an simulation data"); tr->Branch("Thetacm", &mydata.Thetacm, "Thetacm/D"); tr->Branch("Thetalab", &mydata.Thetalab, "Thetalab/D"); tr->Branch("Ndets", &mydata.Ndets, "Ndets/I"); tr->Branch("detE", mydata.detE, "detE[Ndets]/D"); tr->Branch("detId", mydata.detId, "detId[Ndets]/I"); } void GeneAnalysisManager::FillTree() { tr->Fill(); memset(&mydata, 0x00, sizeof(mydata)); } // save data & close the file void GeneAnalysisManager::save() { if (theTFile) { theTFile->Write(); theTFile->Close(); } // 4cout<<" --> reactNum: "<< reactNum <