64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
#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 <<G4endl;
|
|
}
|