From ca742a064f48cfbf4e00e8ff573e44d040302428 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 17 Oct 2023 16:35:54 +0200 Subject: [PATCH] more work to get rid of raw pointers. --- src/addRun.cpp | 48 +++++------------ src/any2many.cpp | 8 +-- src/dump_header.cpp | 21 ++------ src/msr2data.cpp | 18 ++----- src/musrFT.cpp | 69 ++++++++---------------- src/musrfit.cpp | 24 ++++----- src/musrt0.cpp | 128 +++++++++----------------------------------- src/musrview.cpp | 12 ++--- 8 files changed, 89 insertions(+), 239 deletions(-) diff --git a/src/addRun.cpp b/src/addRun.cpp index 7ad8cf6f..1de03799 100644 --- a/src/addRun.cpp +++ b/src/addRun.cpp @@ -536,8 +536,8 @@ int main(int argc, char *argv[]) // read startup file char startup_path_name[128]; - std::unique_ptr saxParser = std::unique_ptr(new TSAXParser()); - std::unique_ptr startupHandler = std::unique_ptr(new PStartupHandler()); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> addRun **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; @@ -627,14 +627,7 @@ int main(int argc, char *argv[]) Bool_t isGood{true}; for (UInt_t i=0; i(new PRunDataHandler(addRunInfo[i].fPathFileName, addRunInfo[i].fFileFormat, startupHandler->GetDataPathList())); - if (runDataHandler[i] == nullptr) { - isGood = false; - std::cerr << std::endl; - std::cerr << "**ERROR** couldn't invoke PRunDataHandler (i=" << i << ")." << std::endl; - std::cerr << std::endl; - break; - } + runDataHandler[i] = std::make_unique(addRunInfo[i].fPathFileName, addRunInfo[i].fFileFormat, startupHandler->GetDataPathList()); runDataHandler[i]->ReadData(); if (!runDataHandler[i]->IsAllDataAvailable()) { isGood = false; @@ -644,14 +637,7 @@ int main(int argc, char *argv[]) break; } } else { - runDataHandler[i] = std::unique_ptr(new PRunDataHandler(addRunInfo[i].fPathFileName, addRunInfo[i].fFileFormat)); - if (runDataHandler[i] == nullptr) { - isGood = false; - std::cerr << std::endl; - std::cerr << "**ERROR** couldn't invoke PRunDataHandler (i=" << i << ")." << std::endl; - std::cerr << std::endl; - break; - } + runDataHandler[i] = std::make_unique(addRunInfo[i].fPathFileName, addRunInfo[i].fFileFormat); runDataHandler[i]->ReadData(); if (!runDataHandler[i]->IsAllDataAvailable()) { isGood = false; @@ -678,13 +664,7 @@ int main(int argc, char *argv[]) break; } } - info = std::unique_ptr(new PAny2ManyInfo()); - if (info == nullptr) { - std::cerr << std::endl; - std::cerr << "**ERROR** couldn't invoke PAny2ManyInfo." << std::endl; - std::cerr << std::endl; - isGood = false; - } + info = std::make_unique(); } if (isGood) { @@ -692,13 +672,7 @@ int main(int argc, char *argv[]) info->outFormat = format; info->year = year; info->outFileName = flnOut; - dataOut = std::unique_ptr(new PRunDataHandler(info.get())); - if (dataOut == nullptr) { - std::cerr << std::endl; - std::cerr << "**ERROR** couldn't invoke PRunDataHandler for the output file." << std::endl; - std::cerr << std::endl; - isGood = false; - } + dataOut = std::make_unique(info.get()); } if (isGood) { @@ -795,8 +769,12 @@ int main(int argc, char *argv[]) } // feed all the necessary information for the data file - std::unique_ptr rawRunData = std::unique_ptr(new PRawRunData()); - rawRunData = std::unique_ptr(runDataHandler[0]->GetRunData()); // copy all + PRawRunData *rawRunData = nullptr; + rawRunData = runDataHandler[0]->GetRunData(); // copy all + if (rawRunData == nullptr) { + std::cerr << ">> addRun: **ERROR** couldn't obtain PRawRunData object." << std::endl; + return PMUSR_MSR_ALLOCATION_ERROR; + } rawRunData->SetGenerator("addRun"); // overwrite the t0 values with the new ones for (UInt_t i=0; iGetNoOfHistos(); i++) { @@ -808,7 +786,7 @@ int main(int argc, char *argv[]) } // feed run data handler with new data - if (dataOut->SetRunData(rawRunData.get())) { + if (dataOut->SetRunData(rawRunData)) { // write output file dataOut->WriteData(); } diff --git a/src/any2many.cpp b/src/any2many.cpp index 6cf92f61..59263256 100644 --- a/src/any2many.cpp +++ b/src/any2many.cpp @@ -494,8 +494,8 @@ int main(int argc, char *argv[]) // read startup file char startup_path_name[128]; - std::unique_ptr saxParser = std::unique_ptr(new TSAXParser()); - std::unique_ptr startupHandler = std::unique_ptr(new PStartupHandler()); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> any2many **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; @@ -516,9 +516,9 @@ int main(int argc, char *argv[]) // read all the necessary runs (raw data) std::unique_ptr dataHandler; if (startupHandler) - dataHandler = std::unique_ptr(new PRunDataHandler(&info, startupHandler->GetDataPathList())); + dataHandler = std::make_unique(&info, startupHandler->GetDataPathList()); else - dataHandler = std::unique_ptr(new PRunDataHandler(&info)); + dataHandler = std::make_unique(&info); // read and convert all data dataHandler->ConvertData(); diff --git a/src/dump_header.cpp b/src/dump_header.cpp index 24eeef90..ae5de519 100644 --- a/src/dump_header.cpp +++ b/src/dump_header.cpp @@ -200,13 +200,7 @@ int dump_header_root(const std::string fileName, const bool summary, const bool std::cout << std::endl << "-------------------" << std::endl << std::endl; } else { // MusrRoot // invoke the MusrRoot header object - header = std::unique_ptr(new TMusrRunHeader(fileName.c_str(), true)); // read quite - if (header == nullptr) { - std::cerr << std::endl << "**ERROR** Couldn't invoke MusrRoot RunHeader in file:" << fileName; - std::cerr << std::endl; - f.Close(); - return 1; - } + header = std::make_unique(fileName.c_str(), true); // read quite // try to populate the MusrRoot header object if (!header->ExtractAll(folder)) { @@ -320,14 +314,7 @@ int dump_header_root(const std::string fileName, const bool summary, const bool int dump_header_nexus(const std::string fileName, const bool counts) { #ifdef PNEXUS_ENABLED - std::unique_ptr nxs_file = std::unique_ptr(new PNeXus(fileName.c_str())); - - if (nxs_file == nullptr) { - std::cerr << std::endl; - std::cerr << "**ERROR** couldn't invoke NeXus file object." << std::endl; - std::cerr << std::endl; - return 1; - } + std::unique_ptr nxs_file = std::make_unique(fileName.c_str()); if (nxs_file->IsValid(false)) { nxs_file->Dump(counts); @@ -930,8 +917,8 @@ int main(int argc, char *argv[]) // invoke the startup handler in order to get the default search paths to the data files // read startup file char startup_path_name[128]; - std::unique_ptr saxParser = std::unique_ptr(new TSAXParser()); - std::unique_ptr startupHandler = std::unique_ptr(new PStartupHandler()); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> musrfit **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; diff --git a/src/msr2data.cpp b/src/msr2data.cpp index 2bc9ab18..1a5cd3d5 100644 --- a/src/msr2data.cpp +++ b/src/msr2data.cpp @@ -555,12 +555,7 @@ int main(int argc, char *argv[]) run_list += arg[i] + " "; } // parse run_list string - std::unique_ptr nl = std::unique_ptr(new PStringNumberList(run_list)); - if (nl == nullptr) { // couldn't invoke object - std::cerr << std::endl; - std::cerr << ">> msr2data: **ERROR** Couldn't invoke run_list parser object! Quitting now." << std::endl; - return 0; - } + std::unique_ptr nl = std::make_unique(run_list); std::string errorMsg(""); if (!nl->Parse(errorMsg)) { std::cerr << std::endl; @@ -662,12 +657,7 @@ int main(int argc, char *argv[]) realOutput = false; // create the msr2data-object and set the run numbers according to the runTAG above - std::unique_ptr msr2dataHandler = std::unique_ptr(new PMsr2Data(msrExtension)); - if (msr2dataHandler == nullptr) { - std::cerr << std::endl; - std::cerr << ">> msr2data: **ERROR** couldn't invoke msr2dataHandler." << std::endl; - return -1; - } + std::unique_ptr msr2dataHandler = std::make_unique(msrExtension); int status; @@ -801,7 +791,7 @@ int main(int argc, char *argv[]) // delete old db/data file if the "new" option is given if (!msr2data_useOption(arg, "new")) { - fileOutput = std::unique_ptr(new std::fstream); + fileOutput = std::make_unique(); fileOutput->open(outputFile.c_str(), std::ios::in); if (fileOutput->is_open()) { std::cout << std::endl << ">> msr2data: **INFO** Deleting output file " << outputFile << std::endl; @@ -980,7 +970,7 @@ int main(int argc, char *argv[]) // Unfortunately, there are also problems with boost::filesystem::exists(outputFile) // Therefore, first try to open the file for reading and if this works, write to it - not clean but it works if (realOutput) { - fileOutput = std::unique_ptr(new std::fstream); + fileOutput = std::make_unique(); fileOutput->open(outputFile.c_str(), std::ios::in); if (fileOutput->is_open()) { fileOutput->close(); diff --git a/src/musrFT.cpp b/src/musrFT.cpp index d661b146..d15345c6 100644 --- a/src/musrFT.cpp +++ b/src/musrFT.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -1030,40 +1031,22 @@ Int_t main(Int_t argc, Char_t *argv[]) PStartupOptions startup_options; startup_options.writeExpectedChisq = false; startup_options.estimateN0 = true; - TSAXParser *saxParser = new TSAXParser(); - PStartupHandler *startupHandler = new PStartupHandler(); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> musrFT **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; - // clean up - if (saxParser) { - delete saxParser; - saxParser = nullptr; - } - if (startupHandler) { - delete startupHandler; - startupHandler = nullptr; - } } else { strcpy(startup_path_name, startupHandler->GetStartupFilePath().Data()); - saxParser->ConnectToHandler("PStartupHandler", startupHandler); + saxParser->ConnectToHandler("PStartupHandler", startupHandler.get()); //status = saxParser->ParseFile(startup_path_name); // parsing the file as above seems to lead to problems in certain environments; // use the parseXmlFile function instead (see PStartupHandler.cpp for the definition) - status = parseXmlFile(saxParser, startup_path_name); + status = parseXmlFile(saxParser.get(), startup_path_name); // check for parse errors if (status) { // error std::cerr << std::endl << ">> musrFT **WARNING** Reading/parsing musrfit_startup.xml failed."; std::cerr << std::endl; - // clean up - if (saxParser) { - delete saxParser; - saxParser = nullptr; - } - if (startupHandler) { - delete startupHandler; - startupHandler = nullptr; - } } } @@ -1071,10 +1054,10 @@ Int_t main(Int_t argc, Char_t *argv[]) PPrepFourier data(startupParam.packing, startupParam.bkg_range, startupParam.bkg); // load msr-file(s) - std::vector msrHandler; + std::vector< std::unique_ptr > msrHandler; msrHandler.resize(startupParam.msrFln.size()); for (UInt_t i=0; i(startupParam.msrFln[i].Data(), &startup_options, true); status = msrHandler[i]->ReadMsrFile(); if (status != PMUSR_SUCCESS) { switch (status) { @@ -1092,24 +1075,32 @@ Int_t main(Int_t argc, Char_t *argv[]) } } - std::vector runDataHandler; + std::vector< std::unique_ptr > runDataHandler; runDataHandler.resize(startupParam.msrFln.size()+startupParam.dataFln.size()); // resize to the total number of run data provided // load data-file(s) related to msr-file for (UInt_t i=0; iGetDataPathList()); + runDataHandler[i] = std::make_unique(msrHandler[i].get(), startupHandler->GetDataPathList()); else - runDataHandler[i] = new PRunDataHandler(msrHandler[i]); + runDataHandler[i] = std::make_unique(msrHandler[i].get()); + if (runDataHandler[i] == nullptr) { + std::cerr << ">> musrFT: **ERROR** couldn't allocate PRunDataHandler object." << std::endl; + return PMUSR_MSR_ALLOCATION_ERROR; + } } // load data-file(s) provided directly for (UInt_t i=msrHandler.size(); iGetDataPathList()); + runDataHandler[i] = std::make_unique(startupParam.dataFln[i-msrHandler.size()], startupParam.dataFileFormat[i-msrHandler.size()], startupHandler->GetDataPathList()); else - runDataHandler[i] = new PRunDataHandler(startupParam.dataFln[i-msrHandler.size()], startupParam.dataFileFormat[i-msrHandler.size()]); + runDataHandler[i] = std::make_unique(startupParam.dataFln[i-msrHandler.size()], startupParam.dataFileFormat[i-msrHandler.size()]); + if (runDataHandler[i] == nullptr) { + std::cerr << ">> musrFT: **ERROR** couldn't allocate PRunDataHandler object." << std::endl; + return PMUSR_MSR_ALLOCATION_ERROR; + } } // read all the data files @@ -1288,7 +1279,7 @@ Int_t main(Int_t argc, Char_t *argv[]) // handle data set(s) // group forward histos - if (musrFT_groupHistos(runDataHandler[i], global, runs->at(runList[j]-1), rd)) { + if (musrFT_groupHistos(runDataHandler[i].get(), global, runs->at(runList[j]-1), rd)) { return PMUSR_DATA_FILE_READ_ERROR; } // keep data set @@ -1512,29 +1503,11 @@ Int_t main(Int_t argc, Char_t *argv[]) if (fourierCanvas) delete fourierCanvas; - if (startupHandler) - delete startupHandler; - - for (UInt_t i=0; i 0) { for (UInt_t i=0; i 0) { - for (UInt_t i=0; i c = std::unique_ptr(new TCanvas(name, title.Data(), 10, 10, 800, 600)); + std::unique_ptr c = std::make_unique(name, title.Data(), 10, 10, 800, 600); // create histos Double_t diff = data->GetDataTimeStep(); Double_t start = -diff/2.0; Double_t end = data->GetDataTimeStep()*data->GetValue()->size(); - std::unique_ptr hdata = std::unique_ptr(new TH1F("hdata", "run data", data->GetValue()->size(), start, end)); - std::unique_ptr htheo = std::unique_ptr(new TH1F("htheo", "run theory", data->GetValue()->size(), start, end)); + std::unique_ptr hdata = std::make_unique("hdata", "run data", data->GetValue()->size(), start, end); + std::unique_ptr htheo = std::make_unique("htheo", "run theory", data->GetValue()->size(), start, end); // fill data for (unsigned int i=0; iGetValue()->size(); i++) { @@ -617,8 +617,8 @@ int main(int argc, char *argv[]) // read startup file char startup_path_name[128]; - std::unique_ptr saxParser(new TSAXParser()); - std::unique_ptr startupHandler(new PStartupHandler()); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> musrfit **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; @@ -644,9 +644,9 @@ int main(int argc, char *argv[]) // read msr-file std::unique_ptr msrHandler; if (startupHandler) - msrHandler = std::unique_ptr(new PMsrHandler(filename, &startup_options)); + msrHandler = std::make_unique(filename, &startup_options); else - msrHandler = std::unique_ptr(new PMsrHandler(filename)); + msrHandler = std::make_unique(filename); status = msrHandler->ReadMsrFile(); if (status != PMUSR_SUCCESS) { switch (status) { @@ -666,9 +666,9 @@ int main(int argc, char *argv[]) // read all the necessary runs (raw data) std::unique_ptr dataHandler; if (startupHandler) - dataHandler = std::unique_ptr(new PRunDataHandler(msrHandler.get(), startupHandler->GetDataPathList())); + dataHandler = std::make_unique(msrHandler.get(), startupHandler->GetDataPathList()); else - dataHandler = std::unique_ptr(new PRunDataHandler(msrHandler.get())); + dataHandler = std::make_unique(msrHandler.get()); dataHandler->ReadData(); @@ -689,7 +689,7 @@ int main(int argc, char *argv[]) std::unique_ptr runListCollection; if (success) { // feed all the necessary histogramms for the fit - runListCollection = std::unique_ptr(new PRunListCollection(msrHandler.get(), dataHandler.get())); + runListCollection = std::make_unique(msrHandler.get(), dataHandler.get()); for (unsigned int i=0; i < msrHandler->GetMsrRunList()->size(); i++) { success = runListCollection->Add(i, kFit); if (!success) { @@ -704,7 +704,7 @@ int main(int argc, char *argv[]) std::unique_ptr th; if (timeout_enabled) { pid_t musrfit_pid = getpid(); - th = std::unique_ptr(new TThread(musrfit_timeout, (void*)&musrfit_pid)); + th = std::make_unique(musrfit_timeout, (void*)&musrfit_pid); if (th) { th->Run(); } @@ -713,7 +713,7 @@ int main(int argc, char *argv[]) // do fitting std::unique_ptr fitter; if (success) { - fitter = std::unique_ptr(new PFitter(msrHandler.get(), runListCollection.get(), chisq_only)); + fitter = std::make_unique(msrHandler.get(), runListCollection.get(), chisq_only); if (fitter->IsValid()) { fitter->DoFit(); if (!fitter->IsScanOnly()) diff --git a/src/musrt0.cpp b/src/musrt0.cpp index c6010fec..5e1431c4 100644 --- a/src/musrt0.cpp +++ b/src/musrt0.cpp @@ -94,15 +94,7 @@ void musrt0_syntax() */ Bool_t musrt0_item(TApplication &app, PMsrHandler *msrHandler, PMusrT0Data &data, UInt_t idx, Int_t timeout) { - PMusrT0 *musrT0 = new PMusrT0(data); - - // check if the musrT0 object could be invoked - if (musrT0 == nullptr) { - std::cerr << std::endl << ">> musrt0 **ERROR** Couldn't invoke musrT0 ..."; - std::cerr << std::endl << ">> run name " << data.GetRawRunData(idx)->GetRunName()->Data(); - std::cerr << std::endl; - return false; - } + std::unique_ptr musrT0 = std::make_unique(data); // check if the musrT0 object is valid if (!musrT0->IsValid()) { @@ -137,45 +129,11 @@ Bool_t musrt0_item(TApplication &app, PMsrHandler *msrHandler, PMusrT0Data &data result = true; // disconnect all SIGNALS and SLOTS connected t0 musrT0 - musrT0->Disconnect(musrT0); - - // cleanup - delete musrT0; - musrT0 = nullptr; + musrT0->Disconnect(musrT0.get()); return result; } -//-------------------------------------------------------------------------- -/** - *

This routine cleans up the handlers. - * - * \param saxParser XML SAX parser - * \param startupHandler startup handler - * \param msrHandler msr-file handler - * \param dataHandler raw run data handler - */ -void musrt0_cleanup(TSAXParser *saxParser, PStartupHandler *startupHandler, PMsrHandler *msrHandler, PRunDataHandler *dataHandler) -{ - if (saxParser) { - delete saxParser; - saxParser = nullptr; - } - if (startupHandler) { - delete startupHandler; - startupHandler = nullptr; - } - if (msrHandler) { - delete msrHandler; - msrHandler = nullptr; - } - if (dataHandler) { - delete dataHandler; - dataHandler = nullptr; - } -} - - //-------------------------------------------------------------------------- /** *

@@ -312,45 +270,27 @@ Int_t main(Int_t argc, Char_t *argv[]) // read startup file Char_t startup_path_name[128]; - TSAXParser *saxParser = new TSAXParser(); - PStartupHandler *startupHandler = new PStartupHandler(); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> musrt0 **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; - // clean up - if (saxParser) { - delete saxParser; - saxParser = nullptr; - } - if (startupHandler) { - delete startupHandler; - startupHandler = nullptr; - } } else { strcpy(startup_path_name, startupHandler->GetStartupFilePath().Data()); - saxParser->ConnectToHandler("PStartupHandler", startupHandler); + saxParser->ConnectToHandler("PStartupHandler", startupHandler.get()); //status = saxParser->ParseFile(startup_path_name); // parsing the file as above seems to lead to problems in certain environments; // use the parseXmlFile function instead (see PStartupHandler.cpp for the definition) - status = parseXmlFile(saxParser, startup_path_name); + status = parseXmlFile(saxParser.get(), startup_path_name); // check for parse errors if (status) { // error std::cerr << std::endl << ">> musrt0 **WARNING** Reading/parsing musrfit_startup.xml failed."; std::cerr << std::endl; - // clean up - if (saxParser) { - delete saxParser; - saxParser = nullptr; - } - if (startupHandler) { - delete startupHandler; - startupHandler = nullptr; - } } } // read msr-file - PMsrHandler *msrHandler = new PMsrHandler(filename); + std::unique_ptr msrHandler = std::make_unique(filename); status = msrHandler->ReadMsrFile(); if (status != PMUSR_SUCCESS) { switch (status) { @@ -383,12 +323,12 @@ Int_t main(Int_t argc, Char_t *argv[]) } // read all the necessary runs (raw data) - PRunDataHandler *dataHandler = nullptr; + std::unique_ptr dataHandler; if (success) { if (startupHandler) - dataHandler = new PRunDataHandler(msrHandler, startupHandler->GetDataPathList()); + dataHandler = std::make_unique(msrHandler.get(), startupHandler->GetDataPathList()); else - dataHandler = new PRunDataHandler(msrHandler); + dataHandler = std::make_unique(msrHandler.get()); dataHandler->ReadData(); @@ -874,8 +814,7 @@ Int_t main(Int_t argc, Char_t *argv[]) musrT0Data.SetDetectorTag(PMUSRT0_FORWARD); musrT0Data.SetCmdTag(PMUSRT0_GET_T0_DATA_AND_BKG_RANGE); // execute cmd - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } else { @@ -901,8 +840,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetAddRunIdx(j); // addruns - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -928,8 +866,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(j); - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } @@ -957,8 +894,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(k); - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -973,8 +909,7 @@ Int_t main(Int_t argc, Char_t *argv[]) musrT0Data.SetAddT0Bin((UInt_t)runList->at(i).GetAddT0Bin(k, j), k, j); } } - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } @@ -1002,8 +937,7 @@ Int_t main(Int_t argc, Char_t *argv[]) musrT0Data.SetDetectorTag(PMUSRT0_FORWARD); musrT0Data.SetCmdTag(PMUSRT0_GET_T0_DATA_AND_BKG_RANGE); // execute cmd - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } // feed necessary data backward @@ -1025,8 +959,7 @@ Int_t main(Int_t argc, Char_t *argv[]) musrT0Data.SetDetectorTag(PMUSRT0_BACKWARD); musrT0Data.SetCmdTag(PMUSRT0_GET_T0_DATA_AND_BKG_RANGE); // execute cmd - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } else { @@ -1053,8 +986,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetAddRunIdx(j); // addruns - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -1079,8 +1011,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetAddRunIdx(j); // addruns - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -1106,8 +1037,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(j); - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } @@ -1132,8 +1062,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(j); - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } @@ -1161,8 +1090,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(k); - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -1190,8 +1118,7 @@ Int_t main(Int_t argc, Char_t *argv[]) } // feed necessary data musrT0Data.SetHistoNoIdx(k); - if (!musrt0_item(app, msrHandler, musrT0Data, j, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, j, timeout)) { exit(0); } } @@ -1208,14 +1135,12 @@ Int_t main(Int_t argc, Char_t *argv[]) } musrT0Data.SetHistoNo(forwardHistos); musrT0Data.SetDetectorTag(PMUSRT0_FORWARD); - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } musrT0Data.SetHistoNo(backwardHistos); musrT0Data.SetDetectorTag(PMUSRT0_BACKWARD); - if (!musrt0_item(app, msrHandler, musrT0Data, 0, timeout)) { - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); + if (!musrt0_item(app, msrHandler.get(), musrT0Data, 0, timeout)) { exit(0); } } @@ -1248,8 +1173,5 @@ Int_t main(Int_t argc, Char_t *argv[]) // delete __temp.msr gSystem->Exec("rm __temp.msr"); - // clean up - musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); - return PMUSR_SUCCESS; } diff --git a/src/musrview.cpp b/src/musrview.cpp index df3f018f..8abd5aa0 100644 --- a/src/musrview.cpp +++ b/src/musrview.cpp @@ -200,8 +200,8 @@ int main(int argc, char *argv[]) // read startup file char startup_path_name[128]; - std::unique_ptr saxParser = std::unique_ptr(new TSAXParser()); - std::unique_ptr startupHandler = std::unique_ptr(new PStartupHandler()); + std::unique_ptr saxParser = std::make_unique(); + std::unique_ptr startupHandler = std::make_unique(); if (!startupHandler->StartupFileFound()) { std::cerr << std::endl << ">> musrview **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data(); std::cerr << std::endl; @@ -223,7 +223,7 @@ int main(int argc, char *argv[]) } // read msr-file - std::unique_ptr msrHandler = std::unique_ptr(new PMsrHandler(fileName)); + std::unique_ptr msrHandler = std::make_unique(fileName); status = msrHandler->ReadMsrFile(); if (status != PMUSR_SUCCESS) { switch (status) { @@ -262,9 +262,9 @@ int main(int argc, char *argv[]) // read all the necessary runs (raw data) std::unique_ptr dataHandler; if (startupHandler) - dataHandler = std::unique_ptr(new PRunDataHandler(msrHandler.get(), startupHandler->GetDataPathList())); + dataHandler = std::make_unique(msrHandler.get(), startupHandler->GetDataPathList()); else - dataHandler = std::unique_ptr(new PRunDataHandler(msrHandler.get())); + dataHandler = std::make_unique(msrHandler.get()); dataHandler->ReadData(); @@ -278,7 +278,7 @@ int main(int argc, char *argv[]) std::unique_ptr runListCollection; if (result == PMUSR_SUCCESS) { // feed all the necessary histogramms for the view - runListCollection = std::unique_ptr(new PRunListCollection(msrHandler.get(), dataHandler.get(), theoAtData)); + runListCollection = std::make_unique(msrHandler.get(), dataHandler.get(), theoAtData); for (unsigned int i=0; iGetMsrRunList()->size(); i++) { // if run is in plotList add it, otherwise go to the next runPresent = false;