more work to get rid of raw pointers.
This commit is contained in:
128
src/musrt0.cpp
128
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<PMusrT0> musrT0 = std::make_unique<PMusrT0>(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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>
|
||||
@ -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<TSAXParser> saxParser = std::make_unique<TSAXParser>();
|
||||
std::unique_ptr<PStartupHandler> startupHandler = std::make_unique<PStartupHandler>();
|
||||
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<PMsrHandler> msrHandler = std::make_unique<PMsrHandler>(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<PRunDataHandler> dataHandler;
|
||||
if (success) {
|
||||
if (startupHandler)
|
||||
dataHandler = new PRunDataHandler(msrHandler, startupHandler->GetDataPathList());
|
||||
dataHandler = std::make_unique<PRunDataHandler>(msrHandler.get(), startupHandler->GetDataPathList());
|
||||
else
|
||||
dataHandler = new PRunDataHandler(msrHandler);
|
||||
dataHandler = std::make_unique<PRunDataHandler>(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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user