180Int_t
main(Int_t argc, Char_t *argv[])
182 Bool_t show_syntax =
false;
184 Bool_t success =
true;
185 std::string filename{};
186 Bool_t getT0FromPromptPeak =
false;
187 Bool_t firstGoodBinOffsetPresent =
false;
188 Int_t firstGoodBinOffset = 0;
198 const char *dsp = gSystem->GetDynamicPath();
199 if (strstr(dsp,
"/usr/local/lib") ==
nullptr)
200 gSystem->AddDynamicPath(
"/usr/local/lib");
202 for (
int i=1; i<argc; i++) {
203 if (!strcmp(argv[i],
"--version")) {
206 std::cout << std::endl <<
"musrt0 version: " << PACKAGE_VERSION <<
", git-branch: " << GIT_BRANCH <<
", git-rev: " << GIT_CURRENT_SHA1 <<
" (" << BUILD_TYPE <<
"), ROOT version: " << ROOT_VERSION_USED << std::endl << std::endl;
208 std::cout << std::endl <<
"musrt0 version: " << PACKAGE_VERSION <<
" (" << BUILD_TYPE <<
"), ROOT version: " << ROOT_VERSION_USED << std::endl << std::endl;
212 std::cout << std::endl <<
"musrt0 git-branch: " << GIT_BRANCH <<
", git-rev: " << GIT_CURRENT_SHA1 << std::endl << std::endl;
214 std::cout << std::endl <<
"musrt0 version: unknown." << std::endl << std::endl;
218 }
else if (!strcmp(argv[i],
"--help")) {
221 }
else if (!strcmp(argv[i],
"--show-dynamic-path")) {
222 std::cout << std::endl <<
"musrt0: internal dynamic search paths for shared libraries/root dictionaries:";
223 std::cout << std::endl <<
" '" << gSystem->GetDynamicPath() <<
"'" << std::endl << std::endl;
225 }
else if (strstr(argv[i],
".msr")) {
226 if (filename.empty()) {
229 std::cout << std::endl <<
"**ERROR** only one file name allowed." << std::endl;
233 }
else if (!strcmp(argv[i],
"--getT0FromPromptPeak") || !strcmp(argv[i],
"-g")) {
234 getT0FromPromptPeak =
true;
236 TString offset(argv[i+1]);
237 if (offset.IsFloat()) {
238 firstGoodBinOffsetPresent =
true;
239 firstGoodBinOffset = offset.Atof();
243 }
else if (!strcmp(argv[i],
"--timeout")) {
245 TString numStr(argv[i+1]);
246 if (numStr.IsDigit()) {
249 std::cout << std::endl <<
"**ERROR** timeout '" << argv[i+1] <<
"' is not a number" << std::endl;
255 std::cout << std::endl <<
"**ERROR** no timeout given." << std::endl;
265 if (filename.empty()) {
266 std::cout << std::endl <<
"**ERROR** msr-file missing!" << std::endl;
277 std::unique_ptr<TSAXParser> saxParser = std::make_unique<TSAXParser>();
278 std::unique_ptr<PStartupHandler> startupHandler = std::make_unique<PStartupHandler>();
279 if (!startupHandler->StartupFileFound()) {
280 std::cerr << std::endl <<
">> musrt0 **WARNING** couldn't find " << startupHandler->GetStartupFilePath().Data();
281 std::cerr << std::endl;
284 saxParser->ConnectToHandler(
"PStartupHandler", startupHandler.get());
291 std::cerr << std::endl <<
">> musrt0 **WARNING** Reading/parsing musrfit_startup.xml failed.";
292 std::cerr << std::endl;
297 std::unique_ptr<PMsrHandler> msrHandler = std::make_unique<PMsrHandler>(filename.c_str());
298 status = msrHandler->ReadMsrFile();
302 std::cout << std::endl <<
">> musrt0 **ERROR** couldn't find '" << filename <<
"'" << std::endl << std::endl;
305 std::cout << std::endl <<
"**SYNTAX ERROR** in file " << filename <<
", full stop here." << std::endl << std::endl;
308 std::cout << std::endl <<
"**UNKNOWN ERROR** when trying to read the msr-file" << std::endl << std::endl;
313 msrHandler->CopyMsrStatisticBlock();
318 PMsrRunList *runList = msrHandler->GetMsrRunList();
319 for (UInt_t i=0; i<runList->size(); i++) {
320 fitType = runList->at(i).GetFitType();
322 fitType = msrHandler->GetMsrGlobal()->GetFitType();
325 std::cout << std::endl <<
">> musrt0 **ERROR** t0 setting for NonMusr fit type doesn't make any sense, will quit ..." << std::endl;
333 std::unique_ptr<PRunDataHandler> dataHandler;
336 dataHandler = std::make_unique<PRunDataHandler>(msrHandler.get(), startupHandler->GetDataPathList());
338 dataHandler = std::make_unique<PRunDataHandler>(msrHandler.get());
340 dataHandler->ReadData();
342 success = dataHandler->IsAllDataAvailable();
344 std::cout << std::endl <<
">> musrt0 **ERROR** Couldn't read all data files, will quit ..." << std::endl;
350 if (getT0FromPromptPeak && success) {
353 std::cerr << std::endl <<
">> musrt0 **WARNING** 't0' and/or 'addt0' already found in the GLOBAL block.";
354 std::cerr << std::endl <<
">> Will not estimate t0's from the prompt peak, the msr-file is left untouched." << std::endl << std::endl;
359 if (getT0FromPromptPeak && success) {
363 TString *runName =
nullptr;
367 for (UInt_t i=0; i<runList->size(); i++) {
368 fitType = runList->at(i).GetFitType();
370 fitType = msrHandler->GetMsrGlobal()->GetFitType();
375 if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
377 histoNo = runList->at(i).GetForwardHistoNo();
378 runName = runList->at(i).GetRunName();
380 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
382 runList->at(i).SetT0Bin(t0Bin, 0);
384 if (firstGoodBinOffsetPresent) {
385 start = t0Bin + firstGoodBinOffset;
386 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
387 runList->at(i).SetDataRange(start, 0);
388 runList->at(i).SetDataRange(end, 1);
390 }
else if ((runList->at(i).GetRunNameSize() > 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
392 histoNo = runList->at(i).GetForwardHistoNo();
393 runName = runList->at(i).GetRunName();
395 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
397 runList->at(i).SetT0Bin(t0Bin, 0);
399 if (firstGoodBinOffsetPresent) {
400 start = t0Bin + firstGoodBinOffset;
401 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
402 runList->at(i).SetDataRange(start, 0);
403 runList->at(i).SetDataRange(end, 1);
406 for (UInt_t j=1; j<runList->at(i).GetRunNameSize(); j++) {
407 runName = runList->at(i).GetRunName(j);
409 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
411 runList->at(i).SetAddT0Bin(t0Bin, j-1, 0);
413 }
else if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() > 1)) {
414 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
416 histoNo = runList->at(i).GetForwardHistoNo(j);
417 runName = runList->at(i).GetRunName();
419 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
421 runList->at(i).SetT0Bin(t0Bin, j);
422 if (firstGoodBinOffsetPresent && (j==0)) {
423 start = t0Bin + firstGoodBinOffset;
424 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
425 runList->at(i).SetDataRange(start, 0);
426 runList->at(i).SetDataRange(end, 1);
430 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
432 histoNo = runList->at(i).GetForwardHistoNo(j);
433 runName = runList->at(i).GetRunName();
435 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
437 runList->at(i).SetT0Bin(t0Bin, j);
438 if (firstGoodBinOffsetPresent && (j==0)) {
439 start = t0Bin + firstGoodBinOffset;
440 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
441 runList->at(i).SetDataRange(start, 0);
442 runList->at(i).SetDataRange(end, 1);
445 for (UInt_t k=1; k<runList->at(i).GetRunNameSize(); k++) {
446 runName = runList->at(i).GetRunName(k);
448 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
450 runList->at(i).SetAddT0Bin(t0Bin, k-1, j);
456 if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
459 histoNo = runList->at(i).GetForwardHistoNo();
460 runName = runList->at(i).GetRunName();
462 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
464 runList->at(i).SetT0Bin(t0Bin, 0);
466 if (firstGoodBinOffsetPresent) {
467 start = t0Bin + firstGoodBinOffset;
468 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
469 runList->at(i).SetDataRange(start, 0);
470 runList->at(i).SetDataRange(end, 1);
474 histoNo = runList->at(i).GetBackwardHistoNo();
475 runName = runList->at(i).GetRunName();
477 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
479 runList->at(i).SetT0Bin(t0Bin, 1);
481 if (firstGoodBinOffsetPresent) {
482 start = t0Bin + firstGoodBinOffset;
483 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
484 runList->at(i).SetDataRange(start, 2);
485 runList->at(i).SetDataRange(end, 3);
487 }
else if ((runList->at(i).GetRunNameSize() > 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
490 histoNo = runList->at(i).GetForwardHistoNo();
491 runName = runList->at(i).GetRunName();
493 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
495 runList->at(i).SetT0Bin(t0Bin, 0);
497 if (firstGoodBinOffsetPresent) {
498 start = t0Bin + firstGoodBinOffset;
499 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
500 runList->at(i).SetDataRange(start, 0);
501 runList->at(i).SetDataRange(end, 1);
504 for (UInt_t j=1; j<runList->at(i).GetRunNameSize(); j++) {
505 runName = runList->at(i).GetRunName(j);
507 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
509 runList->at(i).SetAddT0Bin(t0Bin, j-1, 0);
513 histoNo = runList->at(i).GetBackwardHistoNo();
514 runName = runList->at(i).GetRunName();
516 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
518 runList->at(i).SetT0Bin(t0Bin, 1);
520 if (firstGoodBinOffsetPresent) {
521 start = t0Bin + firstGoodBinOffset;
522 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
523 runList->at(i).SetDataRange(start, 2);
524 runList->at(i).SetDataRange(end, 3);
527 for (UInt_t j=1; j<runList->at(i).GetRunNameSize(); j++) {
528 runName = runList->at(i).GetRunName(j);
530 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
532 runList->at(i).SetAddT0Bin(t0Bin, j-1, 1);
534 }
else if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() > 1)) {
536 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
538 histoNo = runList->at(i).GetForwardHistoNo(j);
539 runName = runList->at(i).GetRunName();
541 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
543 runList->at(i).SetT0Bin(t0Bin, 2*j);
544 if (firstGoodBinOffsetPresent && (j==0)) {
545 start = t0Bin + firstGoodBinOffset;
546 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
547 runList->at(i).SetDataRange(start, 0);
548 runList->at(i).SetDataRange(end, 1);
552 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++) {
554 histoNo = runList->at(i).GetBackwardHistoNo(j);
555 runName = runList->at(i).GetRunName();
557 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
559 runList->at(i).SetT0Bin(t0Bin, 2*j+1);
560 if (firstGoodBinOffsetPresent && (j==0)) {
561 start = t0Bin + firstGoodBinOffset;
562 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
563 runList->at(i).SetDataRange(start, 2);
564 runList->at(i).SetDataRange(end, 3);
569 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
571 histoNo = runList->at(i).GetForwardHistoNo(j);
572 runName = runList->at(i).GetRunName();
574 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
576 runList->at(i).SetT0Bin(t0Bin, 2*j);
577 if (firstGoodBinOffsetPresent && (j==0)) {
578 start = t0Bin + firstGoodBinOffset;
579 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
580 runList->at(i).SetDataRange(start, 0);
581 runList->at(i).SetDataRange(end, 1);
584 for (UInt_t k=1; k<runList->at(i).GetRunNameSize(); k++) {
585 runName = runList->at(i).GetRunName(k);
587 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
589 runList->at(i).SetAddT0Bin(t0Bin, k-1, 2*j);
593 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++) {
595 histoNo = runList->at(i).GetBackwardHistoNo(j);
596 runName = runList->at(i).GetRunName();
598 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
600 runList->at(i).SetT0Bin(t0Bin, 2*j+1);
601 if (firstGoodBinOffsetPresent && (j==0)) {
602 start = t0Bin + firstGoodBinOffset;
603 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
604 runList->at(i).SetDataRange(start, 2);
605 runList->at(i).SetDataRange(end, 3);
608 for (UInt_t k=1; k<runList->at(i).GetRunNameSize(); k++) {
609 runName = runList->at(i).GetRunName(k);
611 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
613 runList->at(i).SetAddT0Bin(t0Bin, k-1, 2*j+1);
619 if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
622 histoNo = runList->at(i).GetForwardHistoNo();
623 runName = runList->at(i).GetRunName();
625 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
627 runList->at(i).SetT0Bin(t0Bin, 0);
629 if (firstGoodBinOffsetPresent) {
630 start = t0Bin + firstGoodBinOffset;
631 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
632 runList->at(i).SetDataRange(start, 0);
633 runList->at(i).SetDataRange(end, 1);
637 histoNo = runList->at(i).GetBackwardHistoNo();
638 runName = runList->at(i).GetRunName();
640 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
642 runList->at(i).SetT0Bin(t0Bin, 1);
644 if (firstGoodBinOffsetPresent) {
645 start = t0Bin + firstGoodBinOffset;
646 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
647 runList->at(i).SetDataRange(start, 2);
648 runList->at(i).SetDataRange(end, 3);
650 }
else if ((runList->at(i).GetRunNameSize() > 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
653 histoNo = runList->at(i).GetForwardHistoNo();
654 runName = runList->at(i).GetRunName();
656 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
658 runList->at(i).SetT0Bin(t0Bin, 0);
660 if (firstGoodBinOffsetPresent) {
661 start = t0Bin + firstGoodBinOffset;
662 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
663 runList->at(i).SetDataRange(start, 0);
664 runList->at(i).SetDataRange(end, 1);
667 for (UInt_t j=1; j<runList->at(i).GetRunNameSize(); j++) {
668 runName = runList->at(i).GetRunName(j);
670 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
672 runList->at(i).SetAddT0Bin(t0Bin, j-1, 0);
676 histoNo = runList->at(i).GetBackwardHistoNo();
677 runName = runList->at(i).GetRunName();
679 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
681 runList->at(i).SetT0Bin(t0Bin, 1);
683 if (firstGoodBinOffsetPresent) {
684 start = t0Bin + firstGoodBinOffset;
685 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
686 runList->at(i).SetDataRange(start, 2);
687 runList->at(i).SetDataRange(end, 3);
690 for (UInt_t j=1; j<runList->at(i).GetRunNameSize(); j++) {
691 runName = runList->at(i).GetRunName(j);
693 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
695 runList->at(i).SetAddT0Bin(t0Bin, j-1, 1);
697 }
else if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() > 1)) {
699 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
701 histoNo = runList->at(i).GetForwardHistoNo(j);
702 runName = runList->at(i).GetRunName();
704 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
706 runList->at(i).SetT0Bin(t0Bin, 2*j);
707 if (firstGoodBinOffsetPresent && (j==0)) {
708 start = t0Bin + firstGoodBinOffset;
709 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
710 runList->at(i).SetDataRange(start, 0);
711 runList->at(i).SetDataRange(end, 1);
715 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++) {
717 histoNo = runList->at(i).GetBackwardHistoNo(j);
718 runName = runList->at(i).GetRunName();
720 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
722 runList->at(i).SetT0Bin(t0Bin, 2*j+1);
723 if (firstGoodBinOffsetPresent && (j==0)) {
724 start = t0Bin + firstGoodBinOffset;
725 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
726 runList->at(i).SetDataRange(start, 2);
727 runList->at(i).SetDataRange(end, 3);
732 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
734 histoNo = runList->at(i).GetForwardHistoNo(j);
735 runName = runList->at(i).GetRunName();
737 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
739 runList->at(i).SetT0Bin(t0Bin, 2*j);
740 if (firstGoodBinOffsetPresent && (j==0)) {
741 start = t0Bin + firstGoodBinOffset;
742 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
743 runList->at(i).SetDataRange(start, 0);
744 runList->at(i).SetDataRange(end, 1);
747 for (UInt_t k=1; k<runList->at(i).GetRunNameSize(); k++) {
748 runName = runList->at(i).GetRunName(k);
750 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
752 runList->at(i).SetAddT0Bin(t0Bin, k-1, 2*j);
756 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++) {
758 histoNo = runList->at(i).GetBackwardHistoNo(j);
759 runName = runList->at(i).GetRunName();
761 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
763 runList->at(i).SetT0Bin(t0Bin, 2*j+1);
764 if (firstGoodBinOffsetPresent && (j==0)) {
765 start = t0Bin + firstGoodBinOffset;
766 end = dataHandler->GetRunData(*runName)->GetDataBin(histoNo)->size();
767 runList->at(i).SetDataRange(start, 2);
768 runList->at(i).SetDataRange(end, 3);
771 for (UInt_t k=1; k<runList->at(i).GetRunNameSize(); k++) {
772 runName = runList->at(i).GetRunName(k);
774 t0Bin =
musrt0_getMaxBin(dataHandler->GetRunData(*runName)->GetDataBin(histoNo));
776 runList->at(i).SetAddT0Bin(t0Bin, k-1, 2*j+1);
799 TApplication app(
"App",
nullptr,
nullptr);
802 std::vector<PRawRunData*> rawRunData;
806 for (UInt_t i=0; i<runList->size(); i++) {
807 fitType = runList->at(i).GetFitType();
809 fitType = msrHandler->GetMsrGlobal()->GetFitType();
815 if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
820 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
823 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
824 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
829 forwardHistos.clear();
830 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(0));
839 if ((runList->at(i).GetRunNameSize() > 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
845 forwardHistos.clear();
846 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(0));
851 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
852 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
854 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
856 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
857 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
865 }
else if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() > 1)) {
870 forwardHistos.clear();
871 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++)
872 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(j));
877 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
880 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
882 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(j))) {
883 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(j)));
896 forwardHistos.clear();
897 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++)
898 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(j));
903 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
904 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
906 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
908 for (UInt_t k=0; k<runList->at(i).GetForwardHistoNoSize(); k++) {
910 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(k))) {
911 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(k)));
924 for (UInt_t j=0; j<runList->at(i).GetT0BinSize(); j++) {
925 musrT0Data.
SetT0Bin((UInt_t)runList->at(i).GetT0Bin(j), j);
926 for (UInt_t k=0; k<runList->at(i).GetAddT0BinEntries(); k++) {
927 musrT0Data.
SetAddT0Bin((UInt_t)runList->at(i).GetAddT0Bin(k, j), k, j);
938 if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
943 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
946 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
947 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
952 forwardHistos.clear();
953 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(0));
965 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
968 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
969 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
974 backwardHistos.clear();
975 backwardHistos.push_back(runList->at(i).GetBackwardHistoNo(0));
985 if ((runList->at(i).GetRunNameSize() > 1) && (runList->at(i).GetForwardHistoNoSize() == 1)) {
991 forwardHistos.clear();
992 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(0));
997 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
998 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
1000 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
1002 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
1003 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
1016 backwardHistos.clear();
1017 backwardHistos.push_back(runList->at(i).GetBackwardHistoNo(0));
1022 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
1023 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
1025 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
1027 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(0))) {
1028 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(0)));
1036 }
else if ((runList->at(i).GetRunNameSize() == 1) && (runList->at(i).GetForwardHistoNoSize() > 1)) {
1041 forwardHistos.clear();
1042 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++)
1043 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(j));
1048 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
1051 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++) {
1053 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(j))) {
1054 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(j)));
1066 backwardHistos.clear();
1067 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++)
1068 backwardHistos.push_back(runList->at(i).GetBackwardHistoNo(j));
1073 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(0))));
1076 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++) {
1078 if (rawRunData[0]->IsPresent(runList->at(i).GetForwardHistoNo(j))) {
1079 musrT0Data.
SetT0BinData((UInt_t)rawRunData[0]->GetT0Bin(runList->at(i).GetForwardHistoNo(j)));
1092 forwardHistos.clear();
1093 for (UInt_t j=0; j<runList->at(i).GetForwardHistoNoSize(); j++)
1094 forwardHistos.push_back(runList->at(i).GetForwardHistoNo(j));
1099 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
1100 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
1102 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
1104 for (UInt_t k=0; k<runList->at(i).GetForwardHistoNoSize(); k++) {
1106 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(k))) {
1107 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(k)));
1120 backwardHistos.clear();
1121 for (UInt_t j=0; j<runList->at(i).GetBackwardHistoNoSize(); j++)
1122 backwardHistos.push_back(runList->at(i).GetBackwardHistoNo(j));
1127 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++)
1128 rawRunData.push_back(dataHandler->GetRunData(*(runList->at(i).GetRunName(j))));
1130 for (UInt_t j=0; j<runList->at(i).GetRunNameSize(); j++) {
1132 for (UInt_t k=0; k<runList->at(i).GetBackwardHistoNoSize(); k++) {
1134 if (rawRunData[j]->IsPresent(runList->at(i).GetForwardHistoNo(k))) {
1135 musrT0Data.
SetT0BinData((UInt_t)rawRunData[j]->GetT0Bin(runList->at(i).GetForwardHistoNo(k)));
1148 for (UInt_t j=0; j<runList->at(i).GetT0BinSize(); j++) {
1149 musrT0Data.
SetT0Bin((UInt_t)runList->at(i).GetT0Bin(j), j);
1150 for (UInt_t k=0; k<runList->at(i).GetAddT0BinEntries(); k++) {
1151 musrT0Data.
SetAddT0Bin((UInt_t)runList->at(i).GetAddT0Bin(k, j), k, j);
1172 forwardHistos.clear();
1173 backwardHistos.clear();
1181 msrHandler->WriteMsrLogFile(
false,
true);
1185 gSystem->CopyFile(filename.c_str(),
"__temp.msr", kTRUE);
1187 TString fln = TString(filename.c_str());
1188 fln.ReplaceAll(
".msr",
".mlog");
1189 gSystem->CopyFile(fln.Data(), filename.c_str(), kTRUE);
1191 gSystem->CopyFile(
"__temp.msr", fln.Data(), kTRUE);
1193 gSystem->Exec(
"rm __temp.msr");