diff --git a/macro/beamtime/mcbm2019/check_events.C b/macro/beamtime/mcbm2019/check_events.C index cb9680267af8ff6fbb9ce2bb019bbaa417953778..e214b14d2004721c7a1bf33551ba106326f7e717 100644 --- a/macro/beamtime/mcbm2019/check_events.C +++ b/macro/beamtime/mcbm2019/check_events.C @@ -1,4 +1,4 @@ -void check_events(Int_t nEvents = 10, UInt_t uRunId=0, TString inDir="data/", TString friendFile="", TString inFile="") +void check_events(Int_t nEvents = 10, UInt_t uRunId=0, TString inDir="data/", TString friendFile="", TString inFile="") { Int_t iVerbose = 1; Int_t iBugCor=0; @@ -13,46 +13,61 @@ void check_events(Int_t nEvents = 10, UInt_t uRunId=0, TString inDir="data/", TS FairLogger::GetLogger(); gLogger->SetLogScreenLevel(logLevel); gLogger->SetLogVerbosityLevel("VERYHIGH"); - + TString workDir = gSystem->Getenv("VMCWORKDIR"); - TString runId = TString::Format("%u", uRunId); + TString runId = TString::Format("%03u", uRunId); TString ParFile = inDir + "/unp_mcbm_params_" + runId + ".root"; TString InputFile = inDir + "/unp_mcbm_" + runId + ".root"; TString InputFileEvent=""; - if (friendFile.Length() > 0) { - InputFileEvent = inDir + friendFile; - } + if( "" == friendFile ) + { + InputFileEvent = inDir + "/events_" + runId + ".root"; + } // if( "" == friendFile ) + else + { + InputFileEvent = inDir + friendFile; + } // else of if( "" == friendFile ) + TString OutputFile = inDir + "/test_" + runId + ".out.root"; TList *parFileList = new TList(); + // ----- Timer -------------------------------------------------------- + TStopwatch timer; + timer.Start(); + // ------------------------------------------------------------------------ + // ----- Reconstruction run ------------------------------------------- FairRunAna *run= new FairRunAna(); FairFileSource* inputSource = new FairFileSource(InputFile); - if (friendFile.Length() > 0) { - inputSource->AddFriend(InputFileEvent); - } + inputSource->AddFriend(InputFileEvent); + run->SetSource(inputSource); run->SetOutputFile(OutputFile); run->SetEventHeaderPersistence(kFALSE); + // ------------------------------------------------------------------------ + // Enable FairMonitor + FairMonitor::GetMonitor()->EnableMonitor(kFALSE); + // ------------------------------------------------------------------------ + CbmCheckEvents* checker = new CbmCheckEvents(); run->AddTask(checker); // ----- Parameter database -------------------------------------------- - + FairRuntimeDb* rtdb = run->GetRuntimeDb(); Bool_t kParameterMerged = kTRUE; FairParRootFileIo* parIo2 = new FairParRootFileIo(kParameterMerged); parIo2->open(ParFile.Data(), "UPDATE"); parIo2->print(); rtdb->setFirstInput(parIo2); - + FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1->open(parFileList, "in"); parIo1->print(); @@ -70,5 +85,34 @@ void check_events(Int_t nEvents = 10, UInt_t uRunId=0, TString inDir="data/", TS run->Run(0, nEvents); //tofClust->Finish(); // ------------------------------------------------------------------------ - // default display + // default display + + // ----- Finish ------------------------------------------------------- + timer.Stop(); + Double_t rtime = timer.RealTime(); + Double_t ctime = timer.CpuTime(); + cout << endl << endl; + cout << "Macro finished succesfully." << endl; + cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; + cout << endl; + // ------------------------------------------------------------------------ + // Extract the maximal used memory an add is as Dart measurement + // This line is filtered by CTest and the value send to CDash + FairSystemInfo sysInfo; + Float_t maxMemory=sysInfo.GetMaxMemory(); + cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">"; + cout << maxMemory; + cout << "</DartMeasurement>" << endl; + + Float_t cpuUsage=ctime/rtime; + cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">"; + cout << cpuUsage; + cout << "</DartMeasurement>" << endl; + + FairMonitor* tempMon = FairMonitor::GetMonitor(); + tempMon->Print(); + +// RemoveGeoManager(); + cout << " Test passed" << endl; + cout << " All ok " << endl; } diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C index f15db00423b0709d01474249b50e77f6029a4f49..c332895482e186f5002b41e71b5fddb79ce2c96a 100644 --- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C +++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C @@ -232,15 +232,24 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents=0, unpacker_much->SetTimeOffsetNsAsic( 34, 0.0 ); // Run 384, DPB 5 ASIC 4 unpacker_much->SetTimeOffsetNsAsic( 35, 0.0 ); // Run 384, DPB 5 ASIC 5 + unpacker_psd->SetTimeOffsetNs( -180.0 ); + break; } // 384 + case 365: + { + unpacker_psd->SetTimeOffsetNs( -1007.0 ); + break; + } + default: break; } // switch( uRunId ) // --- Source task CbmMcbm2018Source* source = new CbmMcbm2018Source(); + source->SetWriteOutputFlag( kTRUE ); // For writing TS metadata source->SetFileName(inFile); // source->SetInputDir(inDir);