From 51dc916cdd2ed3674c7ec1e0d3764c87c7073b26 Mon Sep 17 00:00:00 2001 From: Dominik Smith <smith@th.physik.uni-frankfurt.de> Date: Tue, 16 Feb 2021 10:28:46 +0100 Subject: [PATCH] Updated formatting with clang-format-11 and new rules. --- macro/run/run_reco.C | 117 ++--- .../digis/CbmAlgoBuildRawEvents.cxx | 418 ++++++++---------- .../digis/CbmAlgoBuildRawEvents.h | 159 +++---- reco/eventbuilder/digis/CbmBuildEventsQA.cxx | 75 ++-- reco/eventbuilder/digis/CbmBuildEventsQA.h | 5 +- .../digis/CbmTaskBuildRawEvents.cxx | 150 +++---- .../digis/CbmTaskBuildRawEvents.h | 7 +- 7 files changed, 388 insertions(+), 543 deletions(-) diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C index cf38f783..2fb2490c 100644 --- a/macro/run/run_reco.C +++ b/macro/run/run_reco.C @@ -30,6 +30,7 @@ #include "CbmTofSimpClusterizer.h" #include "CbmTrdClusterFinder.h" #include "CbmTrdHitProducer.h" + #include <FairFileSource.h> #include <FairMonitor.h> #include <FairParAsciiFileIo.h> @@ -37,6 +38,7 @@ #include <FairRunAna.h> #include <FairRuntimeDb.h> #include <FairSystemInfo.h> + #include <TStopwatch.h> #endif @@ -75,13 +77,9 @@ ** from the ROOT prompt without user intervention. ** **/ -void run_reco(TString input = "", - Int_t nTimeSlices = -1, - Int_t firstTimeSlice = 0, - TString output = "", - TString sEvBuildRaw = "", - TString setup = "sis100_electron", - TString paramFile = "") { +void run_reco(TString input = "", Int_t nTimeSlices = -1, Int_t firstTimeSlice = 0, TString output = "", + TString sEvBuildRaw = "", TString setup = "sis100_electron", TString paramFile = "") +{ // ======================================================================== // Adjust this part according to your requirements @@ -93,7 +91,7 @@ void run_reco(TString input = "", // ----- Environment -------------------------------------------------- - TString myName = "run_reco"; // this macro's name for screen output + TString myName = "run_reco"; // this macro's name for screen output TString srcDir = gSystem->Getenv("VMCWORKDIR"); // top source directory // ------------------------------------------------------------------------ @@ -146,21 +144,17 @@ void run_reco(TString input = "", const Char_t* npar[4] = {"asic", "digi", "gas", "gain"}; TObjString* trdParFile(NULL); for (Int_t i(0); i < 4; i++) { - trdParFile = new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + "." - + npar[i] + ".par"); + trdParFile = new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + "." + npar[i] + ".par"); parFileList->Add(trdParFile); - std::cout << "-I- " << myName << ": Using parameter file " - << trdParFile->GetString() << std::endl; + std::cout << "-I- " << myName << ": Using parameter file " << trdParFile->GetString() << std::endl; } } // - TOF digitisation parameters if (CbmSetup::Instance()->GetGeoTag(ECbmModuleId::kTof, geoTag)) { - TObjString* tofBdfFile = - new TObjString(srcDir + "/parameters/tof/tof_" + geoTag + ".digibdf.par"); + TObjString* tofBdfFile = new TObjString(srcDir + "/parameters/tof/tof_" + geoTag + ".digibdf.par"); parFileList->Add(tofBdfFile); - std::cout << "-I- " << myName << ": Using parameter file " - << tofBdfFile->GetString() << std::endl; + std::cout << "-I- " << myName << ": Using parameter file " << tofBdfFile->GetString() << std::endl; } // ------------------------------------------------------------------------ @@ -195,12 +189,10 @@ void run_reco(TString input = "", if (sEvBuildRaw.EqualTo("Ideal", TString::ECaseCompare::kIgnoreCase)) { FairTask* evBuildRaw = new CbmBuildEventsIdeal(); run->AddTask(evBuildRaw); - std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() << std::endl; eventBased = kTRUE; } //? Ideal raw event building - else if (sEvBuildRaw.EqualTo("Real2018", - TString::ECaseCompare::kIgnoreCase)) { + else if (sEvBuildRaw.EqualTo("Real2018", TString::ECaseCompare::kIgnoreCase)) { CbmMcbm2018EventBuilder* evBuildRaw = new CbmMcbm2018EventBuilder(); evBuildRaw->SetFixedTimeWindow(500.); @@ -209,13 +201,11 @@ void run_reco(TString input = "", evBuildRaw->SetUseBaseMuchDigi(kTRUE); run->AddTask(evBuildRaw); - std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() << std::endl; eventBased = kTRUE; - } else if (sEvBuildRaw.EqualTo("Real2019", - TString::ECaseCompare::kIgnoreCase)) { - CbmMcbm2019TimeWinEventBuilderTask* evBuildRaw = - new CbmMcbm2019TimeWinEventBuilderTask(); + } + else if (sEvBuildRaw.EqualTo("Real2019", TString::ECaseCompare::kIgnoreCase)) { + CbmMcbm2019TimeWinEventBuilderTask* evBuildRaw = new CbmMcbm2019TimeWinEventBuilderTask(); //Choose between NoOverlap, MergeOverlap, AllowOverlap evBuildRaw->SetEventOverlapMode(EOverlapMode::AllowOverlap); @@ -228,8 +218,7 @@ void run_reco(TString input = "", if (!useTrd) evBuildRaw->RemoveDetector(kEventBuilderDetTrd); if (!useSts) { std::cerr << "-E- " << myName << ": Sts must be present for raw event " - << "building using ``Real2019'' option. Terminating macro." - << std::endl; + << "building using ``Real2019'' option. Terminating macro." << std::endl; return; } // Remove STS as it will be our reference @@ -247,12 +236,10 @@ void run_reco(TString input = "", evBuildRaw->SetTriggerWindow(ECbmModuleId::kSts, -500, 500); run->AddTask(evBuildRaw); - std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() << std::endl; eventBased = kTRUE; - - } else if (sEvBuildRaw.EqualTo("Real", - TString::ECaseCompare::kIgnoreCase)) { + } + else if (sEvBuildRaw.EqualTo("Real", TString::ECaseCompare::kIgnoreCase)) { CbmTaskBuildRawEvents* evBuildRaw = new CbmTaskBuildRawEvents(); //Choose between NoOverlap, MergeOverlap, AllowOverlap @@ -266,8 +253,7 @@ void run_reco(TString input = "", if (!useTrd) evBuildRaw->RemoveDetector(kRawEventBuilderDetTrd); if (!useSts) { std::cerr << "-E- " << myName << ": Sts must be present for raw event " - << "building using ``Real2019'' option. Terminating macro." - << std::endl; + << "building using ``Real2019'' option. Terminating macro." << std::endl; return; } // Remove STS as it will be our reference @@ -285,14 +271,12 @@ void run_reco(TString input = "", evBuildRaw->SetTriggerWindow(ECbmModuleId::kSts, -500, 500); run->AddTask(evBuildRaw); - std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() << std::endl; eventBased = kTRUE; } //? Real raw event building else { std::cerr << "-E- " << myName << ": Unknown option " << sEvBuildRaw - << " for raw event building! Terminating macro execution." - << std::endl; + << " for raw event building! Terminating macro execution." << std::endl; return; } } //? event-based reco @@ -309,16 +293,14 @@ void run_reco(TString input = "", // ----- Local reconstruction in MVD ---------------------------------- if (useMvd) { - CbmMvdClusterfinder* mvdCluster = - new CbmMvdClusterfinder("MVD Cluster Finder", 0, 0); + CbmMvdClusterfinder* mvdCluster = new CbmMvdClusterfinder("MVD Cluster Finder", 0, 0); run->AddTask(mvdCluster); std::cout << "-I- : Added task " << mvdCluster->GetName() << std::endl; CbmMvdHitfinder* mvdHit = new CbmMvdHitfinder("MVD Hit Finder", 0, 0); mvdHit->UseClusterfinder(kTRUE); run->AddTask(mvdHit); - std::cout << "-I- " << myName << ": Added task " << mvdHit->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << mvdHit->GetName() << std::endl; } // ------------------------------------------------------------------------ @@ -328,8 +310,7 @@ void run_reco(TString input = "", CbmRecoSts* stsReco = new CbmRecoSts(kCbmRecoTimeslice); if (eventBased) stsReco->SetMode(kCbmRecoEvent); run->AddTask(stsReco); - std::cout << "-I- " << myName << ": Added task " << stsReco->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << stsReco->GetName() << std::endl; } // ------------------------------------------------------------------------ @@ -338,8 +319,7 @@ void run_reco(TString input = "", if (useRich) { CbmRichHitProducer* richHitProd = new CbmRichHitProducer(); run->AddTask(richHitProd); - std::cout << "-I- " << myName << ": Added task " << richHitProd->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << richHitProd->GetName() << std::endl; } // ------------------------------------------------------------------------ @@ -358,8 +338,8 @@ void run_reco(TString input = "", // --- Hit finder for GEMs FairTask* muchReco = new CbmMuchFindHitsGem(parFile.Data(), muchFlag); run->AddTask(muchReco); - std::cout << "-I- " << myName << ": Added task " << muchReco->GetName() - << " with parameter file " << parFile << std::endl; + std::cout << "-I- " << myName << ": Added task " << muchReco->GetName() << " with parameter file " << parFile + << std::endl; } // ------------------------------------------------------------------------ @@ -369,34 +349,29 @@ void run_reco(TString input = "", Double_t triggerThreshold = 0.5e-6; // SIS100 CbmTrdClusterFinder* trdCluster = new CbmTrdClusterFinder(); - if (eventBased) - trdCluster->SetTimeBased(kFALSE); + if (eventBased) trdCluster->SetTimeBased(kFALSE); else trdCluster->SetTimeBased(kTRUE); trdCluster->SetNeighbourEnable(true, false); trdCluster->SetMinimumChargeTH(triggerThreshold); trdCluster->SetRowMerger(true); run->AddTask(trdCluster); - std::cout << "-I- " << myName << ": Added task " << trdCluster->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << trdCluster->GetName() << std::endl; CbmTrdHitProducer* trdHit = new CbmTrdHitProducer(); run->AddTask(trdHit); - std::cout << "-I- " << myName << ": Added task " << trdHit->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << trdHit->GetName() << std::endl; } // ------------------------------------------------------------------------ // ----- Local reconstruction in TOF ---------------------------------- if (useTof) { - CbmTofSimpClusterizer* tofCluster = - new CbmTofSimpClusterizer("TOF Simple Clusterizer", 0); + CbmTofSimpClusterizer* tofCluster = new CbmTofSimpClusterizer("TOF Simple Clusterizer", 0); tofCluster->SetOutputBranchPersistent("TofHit", kTRUE); tofCluster->SetOutputBranchPersistent("TofDigiMatch", kTRUE); run->AddTask(tofCluster); - std::cout << "-I- " << myName << ": Added task " << tofCluster->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << tofCluster->GetName() << std::endl; } // ------------------------------------------------------------------------ @@ -405,8 +380,7 @@ void run_reco(TString input = "", if (usePsd) { CbmPsdHitProducer* psdHit = new CbmPsdHitProducer(); run->AddTask(psdHit); - std::cout << "-I- " << myName << ": Added task " << psdHit->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << psdHit->GetName() << std::endl; } // ------------------------------------------------------------------------ @@ -433,21 +407,18 @@ void run_reco(TString input = "", l1->SetStsMaterialBudgetFileName(parFile.Data()); } run->AddTask(l1); - std::cout << "-I- " << myName << ": Added task " << l1->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << l1->GetName() << std::endl; CbmStsTrackFinder* stsTrackFinder = new CbmL1StsTrackFinder(); if (eventBased) { - FairTask* stsFindTracks = - new CbmStsFindTracksEvents(stsTrackFinder, useMvd); + FairTask* stsFindTracks = new CbmStsFindTracksEvents(stsTrackFinder, useMvd); run->AddTask(stsFindTracks); - std::cout << "-I- " << myName << ": Added task " - << stsFindTracks->GetName() << std::endl; - } else { + std::cout << "-I- " << myName << ": Added task " << stsFindTracks->GetName() << std::endl; + } + else { FairTask* stsFindTracks = new CbmStsFindTracks(0, stsTrackFinder, useMvd); run->AddTask(stsFindTracks); - std::cout << "-I- " << myName << ": Added task " - << stsFindTracks->GetName() << std::endl; + std::cout << "-I- " << myName << ": Added task " << stsFindTracks->GetName() << std::endl; } } // ------------------------------------------------------------------------ @@ -465,8 +436,7 @@ void run_reco(TString input = "", CbmPrimaryVertexFinder* pvFinder = new CbmPVFinderKF(); CbmFindPrimaryVertex* findVertex = new CbmFindPrimaryVertex(pvFinder); run->AddTask(findVertex); - std::cout << "-I- " << myName << ": Added task " << findVertex->GetName() - << std::endl; + std::cout << "-I- " << myName << ": Added task " << findVertex->GetName() << std::endl; // ---------------------------------------------------------------------- @@ -549,8 +519,7 @@ void run_reco(TString input = "", std::cout << "Macro finished successfully." << std::endl; std::cout << "Output file is " << outFile << std::endl; std::cout << "Parameter file is " << parFile << std::endl; - std::cout << "Real time " << rtime << " s, CPU time " << ctime << " s" - << std::endl; + std::cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl; FairSystemInfo sysInfo; Float_t maxMemory = sysInfo.GetMaxMemory(); std::cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">"; diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx index 52366d5c..a8dc141b 100644 --- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx +++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx @@ -16,6 +16,7 @@ #include "CbmStsDigi.h" #include "CbmTofDigi.h" #include "CbmTrdDigi.h" + #include "TimesliceMetaData.h" /// FAIRROOT headers @@ -39,7 +40,8 @@ CbmAlgoBuildRawEvents::CbmAlgoBuildRawEvents() {} CbmAlgoBuildRawEvents::~CbmAlgoBuildRawEvents() {} // ---- Init ----------------------------------------------------------- -Bool_t CbmAlgoBuildRawEvents::InitAlgo() { +Bool_t CbmAlgoBuildRawEvents::InitAlgo() +{ LOG(info) << "CbmAlgoBuildRawEvents::InitAlgo => Starting sequence"; // Get a handle from the IO manager @@ -51,26 +53,21 @@ Bool_t CbmAlgoBuildRawEvents::InitAlgo() { } // if( kFALSE == CheckDataAvailable( fRefDet ) ) /// Check if data for detectors in selection list are available - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if (kFALSE == CheckDataAvailable(*det)) { - LOG(fatal) - << "No digi input for one of selection detector, stopping there!"; + LOG(fatal) << "No digi input for one of selection detector, stopping there!"; } // if( kFALSE == CheckDataAvailable( *det ) ) - } // for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) + } // for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) /// Access the TS metadata to know TS start time if needed if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) { - fTimeSliceMetaDataArray = - dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData")); + fTimeSliceMetaDataArray = dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData")); if (!fTimeSliceMetaDataArray) { - LOG(fatal) - << "No TS metadata input found" - << " => Please check in the unpacking macro if the following line was " - "present!" - << std::endl - << "source->SetWriteOutputFlag(kTRUE); // For writing TS metadata"; + LOG(fatal) << "No TS metadata input found" + << " => Please check in the unpacking macro if the following line was " + "present!" + << std::endl + << "source->SetWriteOutputFlag(kTRUE); // For writing TS metadata"; } // if (!fTimeSliceMetaDataArray) } // if ( fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0 ) @@ -82,7 +79,8 @@ Bool_t CbmAlgoBuildRawEvents::InitAlgo() { } // ---- ProcessTs ------------------------------------------------------ -void CbmAlgoBuildRawEvents::ProcessTs() { +void CbmAlgoBuildRawEvents::ProcessTs() +{ LOG_IF(info, fuNrTs % 1000 == 0) << "Begin of TS " << fuNrTs; InitTs(); @@ -107,12 +105,12 @@ void CbmAlgoBuildRawEvents::ProcessTs() { fuNrTs++; } -void CbmAlgoBuildRawEvents::ClearEventVector() { +void CbmAlgoBuildRawEvents::ClearEventVector() +{ /// Need to delete the object the pointer points to first int counter = 0; for (CbmEvent* event : fEventVector) { - LOG(debug) << "Event " << counter << " has " << event->GetNofData() - << " digis"; + LOG(debug) << "Event " << counter << " has " << event->GetNofData() << " digis"; delete event; counter++; } // for( CbmEvent* event: fEventVector) @@ -120,44 +118,49 @@ void CbmAlgoBuildRawEvents::ClearEventVector() { fEventVector.clear(); } // ---- Finish --------------------------------------------------------- -void CbmAlgoBuildRawEvents::Finish() { - LOG(info) << "Total errors: " << fuErrors; -} +void CbmAlgoBuildRawEvents::Finish() { LOG(info) << "Total errors: " << fuErrors; } // --------------------------------------------------------------------- -Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable(RawEventBuilderDetector& det) { +Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable(RawEventBuilderDetector& det) +{ if (ECbmModuleId::kT0 == det.detId) { if (!fT0DigiVec) { LOG(info) << "No T0 digi input found."; return kFALSE; } - } else if (ECbmModuleId::kSts == det.detId) { + } + else if (ECbmModuleId::kSts == det.detId) { if (!fStsDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; } - } else if (ECbmModuleId::kMuch == det.detId) { + } + else if (ECbmModuleId::kMuch == det.detId) { if (!fMuchDigis && !fMuchBeamTimeDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; } - } else if (ECbmModuleId::kTrd == det.detId) { + } + else if (ECbmModuleId::kTrd == det.detId) { if (!fTrdDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; } - } else if (ECbmModuleId::kTof == det.detId) { + } + else if (ECbmModuleId::kTof == det.detId) { if (!fTofDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; } - } else if (ECbmModuleId::kRich == det.detId) { + } + else if (ECbmModuleId::kRich == det.detId) { if (!fRichDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; } - } else if (ECbmModuleId::kPsd == det.detId) { + } + else if (ECbmModuleId::kPsd == det.detId) { if (!fPsdDigis) { LOG(info) << "No " << det.sName << " digi input found."; return kFALSE; @@ -166,21 +169,21 @@ Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable(RawEventBuilderDetector& det) { return kTRUE; } // --------------------------------------------------------------------- -void CbmAlgoBuildRawEvents::InitTs() { +void CbmAlgoBuildRawEvents::InitTs() +{ /// Reset TS based variables (analysis per TS = no building over the border) /// Reference detector fRefDet.fuStartIndex = 0; fRefDet.fuEndIndex = 0; /// Loop on detectors in selection list - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { (*det).fuStartIndex = 0; (*det).fuEndIndex = 0; } // for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) } -void CbmAlgoBuildRawEvents::BuildEvents() { +void CbmAlgoBuildRawEvents::BuildEvents() +{ /// Call LoopOnSeed with proper template argument switch (fRefDet.detId) { case ECbmModuleId::kSts: { @@ -188,9 +191,7 @@ void CbmAlgoBuildRawEvents::BuildEvents() { break; } // case ECbmModuleId::kSts: case ECbmModuleId::kMuch: { - if (fbUseMuchBeamtimeDigi) { - LoopOnSeeds<CbmMuchBeamTimeDigi>(); - } // if (fbUseMuchBeamtimeDigi) + if (fbUseMuchBeamtimeDigi) { LoopOnSeeds<CbmMuchBeamTimeDigi>(); } // if (fbUseMuchBeamtimeDigi) else { LoopOnSeeds<CbmMuchDigi>(); } // else of if (fbUseMuchBeamtimeDigi) @@ -218,22 +219,21 @@ void CbmAlgoBuildRawEvents::BuildEvents() { } // case ECbmModuleId::kT0: default: { LOG(fatal) << "CbmAlgoBuildRawEvents::BuildEvents => " - << "Trying to search event seeds with unsupported det: " - << fRefDet.sName; + << "Trying to search event seeds with unsupported det: " << fRefDet.sName; break; } // default: } // switch( *det ) } -UInt_t CbmAlgoBuildRawEvents::GetNofDigis(ECbmModuleId detId) { +UInt_t CbmAlgoBuildRawEvents::GetNofDigis(ECbmModuleId detId) +{ switch (detId) { case ECbmModuleId::kSts: { return fStsDigis->size(); } case ECbmModuleId::kMuch: { - if (fbUseMuchBeamtimeDigi) { - return fMuchBeamTimeDigis->size(); - } else { + if (fbUseMuchBeamtimeDigi) { return fMuchBeamTimeDigis->size(); } + else { return fMuchDigis->size(); } } @@ -260,15 +260,15 @@ UInt_t CbmAlgoBuildRawEvents::GetNofDigis(ECbmModuleId detId) { } } -bool CbmAlgoBuildRawEvents::DetIsPresent(ECbmModuleId detId) { +bool CbmAlgoBuildRawEvents::DetIsPresent(ECbmModuleId detId) +{ switch (detId) { case ECbmModuleId::kSts: { return fStsDigis != nullptr; } case ECbmModuleId::kMuch: { - if (fbUseMuchBeamtimeDigi) { - return fMuchBeamTimeDigis != nullptr; - } else { + if (fbUseMuchBeamtimeDigi) { return fMuchBeamTimeDigis != nullptr; } + else { return fMuchDigis != nullptr; } } @@ -296,43 +296,50 @@ bool CbmAlgoBuildRawEvents::DetIsPresent(ECbmModuleId detId) { } template<> -const CbmStsDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmStsDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fStsDigis)[uDigi]); } template<> -const CbmMuchBeamTimeDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmMuchBeamTimeDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fMuchBeamTimeDigis)[uDigi]); } template<> -const CbmMuchDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmMuchDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fMuchDigis)[uDigi]); } template<> -const CbmTrdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmTrdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fTrdDigis)[uDigi]); } template<> -const CbmTofDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmTofDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fTofDigis)[uDigi]); } template<> -const CbmRichDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmRichDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fRichDigis)[uDigi]); } template<> -const CbmPsdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) { +const CbmPsdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) +{ return &((*fPsdDigis)[uDigi]); } template<class DigiSeed> -void CbmAlgoBuildRawEvents::LoopOnSeeds() { +void CbmAlgoBuildRawEvents::LoopOnSeeds() +{ /// Access the TS metadata if needed to know TS start time and overlap size Double_t dTsStartTime = fdTsStartTime; Double_t dOverlapStart = fdTsStartTime + fdTsLength; Double_t dOverlapSize = fdTsOverLength; if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) { - pTsMetaData = - dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0)); + pTsMetaData = dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0)); if (nullptr == pTsMetaData) LOG(fatal) << Form("CbmAlgoBuildRawEvents::LoopOnSeeds => " "No TS metadata found for TS %6u.", @@ -344,23 +351,17 @@ void CbmAlgoBuildRawEvents::LoopOnSeeds() { } // if ( fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0 ) /// Print warning in first TS if time window borders out of potential overlap - if ((0.0 < fdEarliestTimeWinBeg && dOverlapSize < fdLatestTimeWinEnd) - || (dOverlapSize < fdWidestTimeWinRange)) { + if ((0.0 < fdEarliestTimeWinBeg && dOverlapSize < fdLatestTimeWinEnd) || (dOverlapSize < fdWidestTimeWinRange)) { LOG(warning) << "CbmAlgoBuildRawEvents::LoopOnSeeds => " << Form("Event window not fitting in TS overlap, risk of " "incomplete events: %f %f %f %f", - fdEarliestTimeWinBeg, - fdLatestTimeWinEnd, - fdWidestTimeWinRange, - dOverlapSize); + fdEarliestTimeWinBeg, fdLatestTimeWinEnd, fdWidestTimeWinRange, dOverlapSize); } // if end of event window does not fit in overlap for a seed at edge of TS core /// Define an acceptance window for the seeds in order to use the overlap /// part of the TS to avoid incomplete events - Double_t dSeedWindowBeg = - dTsStartTime + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg); - Double_t dSeedWindowEnd = - dOverlapStart + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg); + Double_t dSeedWindowBeg = dTsStartTime + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg); + Double_t dSeedWindowEnd = dOverlapStart + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg); if (fbIgnoreTsOverlap) { dSeedWindowBeg = dTsStartTime; dSeedWindowEnd = dOverlapStart; @@ -385,8 +386,7 @@ void CbmAlgoBuildRawEvents::LoopOnSeeds() { << "T0 as reference detector but vector not found!"; } // if (ECbmModuleId::kT0 == fRefDet.detId) else { - UInt_t uNbRefDigis = - (0 < GetNofDigis(fRefDet.detId) ? GetNofDigis(fRefDet.detId) : 0); + UInt_t uNbRefDigis = (0 < GetNofDigis(fRefDet.detId) ? GetNofDigis(fRefDet.detId) : 0); /// Loop on size of vector for (UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi) { LOG(debug) << Form("Checking seed %6u / %6u", uDigi, uNbRefDigis); @@ -396,9 +396,7 @@ void CbmAlgoBuildRawEvents::LoopOnSeeds() { Double_t dTime = pDigi->GetTime(); /// Check if seed in acceptance window - if (dTime < dSeedWindowBeg) { - continue; - } // if( dTime < dSeedWindowBeg ) + if (dTime < dSeedWindowBeg) { continue; } // if( dTime < dSeedWindowBeg ) else if (dSeedWindowEnd < dTime) { break; } // else if( dSeedWindowEnd < dTime ) @@ -407,15 +405,15 @@ void CbmAlgoBuildRawEvents::LoopOnSeeds() { CheckSeed(dTime, uDigi); } // if( nullptr != pDigi ) } // for( UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi ) - } // else of if (ECbmModuleId::kT0 == fRefDet.detId) => Digi containers controlled by DigiManager + } // else of if (ECbmModuleId::kT0 == fRefDet.detId) => Digi containers controlled by DigiManager } -void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { +void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) +{ /// If previous event valid and event overlap not allowed, check if we are in overlap /// and react accordingly if (nullptr != fCurrentEvent - && (EOverlapModeRaw::AllowOverlap != fOverMode - || dSeedTime - fdPrevEvtTime < fRefDet.GetTimeWinRange()) + && (EOverlapModeRaw::AllowOverlap != fOverMode || dSeedTime - fdPrevEvtTime < fRefDet.GetTimeWinRange()) && dSeedTime - fdPrevEvtTime < fdWidestTimeWinRange) { /// Within overlap range switch (fOverMode) { @@ -490,8 +488,7 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { } // case ECbmModuleId::kT0: default: { LOG(fatal) << "CbmAlgoBuildRawEvents::LoopOnSeeds => " - << "Trying to search matches with unsupported det: " - << fRefDet.sName << std::endl + << "Trying to search matches with unsupported det: " << fRefDet.sName << std::endl << "You may want to add support for it in the method."; break; } // default: @@ -505,9 +502,7 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { } // else of if( fdRefTimeWinBeg < fdRefTimeWinEnd ) /// Search for matches for each detector in selection list - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { switch ((*det).detId) { case ECbmModuleId::kSts: { SearchMatches<CbmStsDigi>(dSeedTime, *det); @@ -544,13 +539,12 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { } // case ECbmModuleId::kT0: default: { LOG(fatal) << "CbmAlgoBuildRawEvents::LoopOnSeeds => " - << "Trying to search matches with unsupported det: " - << (*det).sName << std::endl + << "Trying to search matches with unsupported det: " << (*det).sName << std::endl << "You may want to add support for it in the method."; break; } // default: } // switch( *det ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) /// Check if event is filling trigger conditions and clear it if not if (HasTrigger(fCurrentEvent)) { @@ -558,16 +552,13 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { /// In case of NoOverlap or MergeOverlap, we can and should start checking the next window /// from end of current window in order to save CPU and avoid duplicating - if (EOverlapModeRaw::NoOverlap == fOverMode - || EOverlapModeRaw::MergeOverlap == fOverMode) { + if (EOverlapModeRaw::NoOverlap == fOverMode || EOverlapModeRaw::MergeOverlap == fOverMode) { /// Update reference detector fRefDet.fuStartIndex = fRefDet.fuEndIndex; /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { (*det).fuStartIndex = (*det).fuEndIndex; } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) } // If no overlap or merge overlap @@ -580,8 +571,8 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) { } template<class DigiCheck> -void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, - RawEventBuilderDetector& detMatch) { +void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, RawEventBuilderDetector& detMatch) +{ /// This algo relies on time sorted vectors for the selected detectors UInt_t uLocalIndexStart = detMatch.fuStartIndex; UInt_t uLocalIndexEnd = detMatch.fuStartIndex; @@ -622,8 +613,7 @@ void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, << "T0 as selection detector but vector not found!"; } // if( ECbmModuleId::kT0 == detMatch.detId ) else { - UInt_t uNbSelDigis = - (0 < GetNofDigis(detMatch.detId) ? GetNofDigis(detMatch.detId) : 0); + UInt_t uNbSelDigis = (0 < GetNofDigis(detMatch.detId) ? GetNofDigis(detMatch.detId) : 0); /// Loop on size of vector for (UInt_t uDigi = detMatch.fuStartIndex; uDigi < uNbSelDigis; ++uDigi) { const DigiCheck* pDigi = GetDigi<DigiCheck>(uDigi); @@ -632,11 +622,7 @@ void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, Double_t dTime = pDigi->GetTime(); Double_t dTimeDiff = dTime - dSeedTime; - LOG(debug4) << detMatch.sName - << Form(" => Checking match %6u / %6u, dt %f", - uDigi, - uNbSelDigis, - dTimeDiff); + LOG(debug4) << detMatch.sName << Form(" => Checking match %6u / %6u, dt %f", uDigi, uNbSelDigis, dTimeDiff); /// Check if within time window, update start/stop indices if needed if (dTimeDiff < detMatch.fdTimeWinBeg) { @@ -665,21 +651,20 @@ void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, detMatch.fuEndIndex = uLocalIndexEnd; } -void CbmAlgoBuildRawEvents::AddDigiToEvent(RawEventBuilderDetector& det, - Int_t _entry) { +void CbmAlgoBuildRawEvents::AddDigiToEvent(RawEventBuilderDetector& det, Int_t _entry) +{ fCurrentEvent->AddData(det.dataType, _entry); } -Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event) { +Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event) +{ /// Check first reference detector if (kFALSE == CheckTriggerConditions(event, fRefDet)) { return kFALSE; } // if (kFALSE == CheckTriggerConditions(event, fRefDet) ) /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if (kFALSE == CheckTriggerConditions(event, *det)) return kFALSE; } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) @@ -687,9 +672,8 @@ Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event) { return kTRUE; } -Bool_t -CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, - RawEventBuilderDetector& det) { +Bool_t CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, RawEventBuilderDetector& det) +{ /// Check if both Trigger conditions disabled for this detector if (0 == det.fuTriggerMinDigis && det.fiTriggerMaxDigis < 0) { return kTRUE; @@ -700,32 +684,30 @@ CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, /// FIXME: special case to be removed once T0 supported by DigiManager if (!(fT0DigiVec)) { LOG(warning) << "Event does not have digis storage for T0" - << " while the following trigger minimum are defined: " - << det.fuTriggerMinDigis << " " << det.fiTriggerMaxDigis; + << " while the following trigger minimum are defined: " << det.fuTriggerMinDigis << " " + << det.fiTriggerMaxDigis; return kFALSE; } // if( !(fT0DigiVec) ) } // if( ECbmDataType::kT0Digi == det.detId ) else { if (!DetIsPresent(det.detId)) { LOG(warning) << "Event does not have digis storage for " << det.sName - << " while the following trigger min/max are defined: " - << det.fuTriggerMinDigis << " " << det.fiTriggerMaxDigis; + << " while the following trigger min/max are defined: " << det.fuTriggerMinDigis << " " + << det.fiTriggerMaxDigis; return kFALSE; } // if( !fDigiMan->IsPresent( det ) ) } // else of if( ECbmDataType::kT0Digi == det ) /// Check trigger rejection by minimal number or absence Int_t iNbDigis = event->GetNofData(det.dataType); - if ((-1 == iNbDigis) - || (static_cast<UInt_t>(iNbDigis) < det.fuTriggerMinDigis)) { - LOG(debug2) << "Event does not have enough digis: " << iNbDigis << " vs " - << det.fuTriggerMinDigis << " for " << det.sName; + if ((-1 == iNbDigis) || (static_cast<UInt_t>(iNbDigis) < det.fuTriggerMinDigis)) { + LOG(debug2) << "Event does not have enough digis: " << iNbDigis << " vs " << det.fuTriggerMinDigis << " for " + << det.sName; return kFALSE; } // if((-1 == iNbDigis) || (static_cast<UInt_t>(iNbDigis) < det.fuTriggerMinDigis)) /// Check trigger rejection by maximal number else if (0 < det.fiTriggerMaxDigis && det.fiTriggerMaxDigis < iNbDigis) { - LOG(debug2) << "Event Has too many digis: " << iNbDigis << " vs " - << det.fiTriggerMaxDigis << " for " << det.sName; + LOG(debug2) << "Event Has too many digis: " << iNbDigis << " vs " << det.fiTriggerMaxDigis << " for " << det.sName; return kFALSE; } // else if( iNbDigis < det.fiTriggerMaxDigis ) else { @@ -733,7 +715,8 @@ CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, } // else of else if( iNbDigis < det.fiTriggerMaxDigis ) } //---------------------------------------------------------------------- -void CbmAlgoBuildRawEvents::CreateHistograms() { +void CbmAlgoBuildRawEvents::CreateHistograms() +{ /// FIXME: Disable clang formatting for histograms declaration for now /* clang-format off */ fhEventTime = new TH1F("hEventTime", @@ -787,13 +770,12 @@ void CbmAlgoBuildRawEvents::CreateHistograms() { /// FIXME: Re-enable clang formatting after histograms declaration /* clang-format on */ } -void CbmAlgoBuildRawEvents::FillHistos() { +void CbmAlgoBuildRawEvents::FillHistos() +{ Double_t dPreEvtTime = -1.0; for (CbmEvent* evt : fEventVector) { fhEventTime->Fill(evt->GetStartTime() * 1e-9); - if (0.0 <= dPreEvtTime) { - fhEventDt->Fill(evt->GetStartTime() - dPreEvtTime); - } // if( 0.0 <= dPreEvtTime ) + if (0.0 <= dPreEvtTime) { fhEventDt->Fill(evt->GetStartTime() - dPreEvtTime); } // if( 0.0 <= dPreEvtTime ) fhEventSize->Fill(evt->GetNofData()); fhNbDigiPerEvtTime->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData()); @@ -801,22 +783,21 @@ void CbmAlgoBuildRawEvents::FillHistos() { for (UInt_t uDetIdx = 0; uDetIdx < fvDets.size(); ++uDetIdx) { if (nullptr == fvhNbDigiPerEvtTimeDet[uDetIdx]) continue; - fvhNbDigiPerEvtTimeDet[uDetIdx]->Fill( - evt->GetStartTime() * 1e-9, evt->GetNofData(fvDets[uDetIdx].dataType)); + fvhNbDigiPerEvtTimeDet[uDetIdx]->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(fvDets[uDetIdx].dataType)); } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) dPreEvtTime = evt->GetStartTime(); } // for( CbmEvent * evt: fEventVector ) } -void CbmAlgoBuildRawEvents::ResetHistograms(Bool_t /*bResetTime*/) { +void CbmAlgoBuildRawEvents::ResetHistograms(Bool_t /*bResetTime*/) +{ fhEventTime->Reset(); fhEventDt->Reset(); fhEventSize->Reset(); fhNbDigiPerEvtTime->Reset(); /// Loop on histograms - for (std::vector<TH2*>::iterator itHist = fvhNbDigiPerEvtTimeDet.begin(); - itHist != fvhNbDigiPerEvtTimeDet.end(); + for (std::vector<TH2*>::iterator itHist = fvhNbDigiPerEvtTimeDet.begin(); itHist != fvhNbDigiPerEvtTimeDet.end(); ++itHist) { (*itHist)->Reset(); } // for( std::vector<TH2*>::iterator itHist = fvhNbDigiPerEvtTimeDet.begin(); itHist != fvhNbDigiPerEvtTimeDet.end(); ++itHist ) @@ -830,80 +811,56 @@ void CbmAlgoBuildRawEvents::ResetHistograms(Bool_t /*bResetTime*/) { */ } //---------------------------------------------------------------------- -void CbmAlgoBuildRawEvents::SetReferenceDetector(ECbmModuleId refDet, - ECbmDataType dataTypeIn, - std::string sNameIn, - UInt_t uTriggerMinDigisIn, - Int_t iTriggerMaxDigisIn, - Double_t fdTimeWinBegIn, - Double_t fdTimeWinEndIn) { +void CbmAlgoBuildRawEvents::SetReferenceDetector(ECbmModuleId refDet, ECbmDataType dataTypeIn, std::string sNameIn, + UInt_t uTriggerMinDigisIn, Int_t iTriggerMaxDigisIn, + Double_t fdTimeWinBegIn, Double_t fdTimeWinEndIn) +{ /// FIXME: Deprecated method to be removed later. For now create temp object. - SetReferenceDetector(RawEventBuilderDetector(refDet, - dataTypeIn, - sNameIn, - uTriggerMinDigisIn, - iTriggerMaxDigisIn, - fdTimeWinBegIn, - fdTimeWinEndIn)); + SetReferenceDetector(RawEventBuilderDetector(refDet, dataTypeIn, sNameIn, uTriggerMinDigisIn, iTriggerMaxDigisIn, + fdTimeWinBegIn, fdTimeWinEndIn)); } -void CbmAlgoBuildRawEvents::AddDetector(ECbmModuleId selDet, - ECbmDataType dataTypeIn, - std::string sNameIn, - UInt_t uTriggerMinDigisIn, - Int_t iTriggerMaxDigisIn, - Double_t fdTimeWinBegIn, - Double_t fdTimeWinEndIn) { +void CbmAlgoBuildRawEvents::AddDetector(ECbmModuleId selDet, ECbmDataType dataTypeIn, std::string sNameIn, + UInt_t uTriggerMinDigisIn, Int_t iTriggerMaxDigisIn, Double_t fdTimeWinBegIn, + Double_t fdTimeWinEndIn) +{ /// FIXME: Deprecated method to be removed later. For now create temp object. - AddDetector(RawEventBuilderDetector(selDet, - dataTypeIn, - sNameIn, - uTriggerMinDigisIn, - iTriggerMaxDigisIn, - fdTimeWinBegIn, - fdTimeWinEndIn)); + AddDetector(RawEventBuilderDetector(selDet, dataTypeIn, sNameIn, uTriggerMinDigisIn, iTriggerMaxDigisIn, + fdTimeWinBegIn, fdTimeWinEndIn)); } //---------------------------------------------------------------------- //---------------------------------------------------------------------- -void CbmAlgoBuildRawEvents::SetReferenceDetector( - RawEventBuilderDetector refDetIn) { +void CbmAlgoBuildRawEvents::SetReferenceDetector(RawEventBuilderDetector refDetIn) +{ /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det) == refDetIn) { LOG(warning) << "CbmAlgoBuildRawEvents::SetReferenceDetector => " "Reference detector already in selection detector list!" << refDetIn.sName; - LOG(warning) - << " => " - "It will be automatically removed from selection detector list!"; - LOG(warning) - << " => " - "Please also remember to update the selection windows to store " - "clusters!"; + LOG(warning) << " => " + "It will be automatically removed from selection detector list!"; + LOG(warning) << " => " + "Please also remember to update the selection windows to store " + "clusters!"; RemoveDetector(refDetIn); } // if( (*det) == refDetIn ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) if (fRefDet == refDetIn) { - LOG(warning) - << "CbmAlgoBuildRawEvents::SetReferenceDetector => " - "Doing nothing, identical reference detector already in use"; + LOG(warning) << "CbmAlgoBuildRawEvents::SetReferenceDetector => " + "Doing nothing, identical reference detector already in use"; } // if( fRefDet == refDetIn ) else { LOG(info) << "CbmAlgoBuildRawEvents::SetReferenceDetector => " - << "Replacing " << fRefDet.sName << " with " << refDetIn.sName - << " as reference detector"; - LOG(warning) - << " => " - "You may want to use AddDetector after this command to add in " - "selection " - << refDetIn.sName; - LOG(warning) - << " => " - "Please also remember to update the selection windows!"; + << "Replacing " << fRefDet.sName << " with " << refDetIn.sName << " as reference detector"; + LOG(warning) << " => " + "You may want to use AddDetector after this command to add in " + "selection " + << refDetIn.sName; + LOG(warning) << " => " + "Please also remember to update the selection windows!"; } // else of if( fRefDet == refDetIn ) fRefDet = refDetIn; @@ -912,7 +869,8 @@ void CbmAlgoBuildRawEvents::SetReferenceDetector( /// Update the variable storing the size if widest time window for overlap detection UpdateWidestTimeWinRange(); } -void CbmAlgoBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) { +void CbmAlgoBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) +{ if (fRefDet == selDet) { LOG(fatal) << "CbmAlgoBuildRawEvents::AddDetector => Cannot " "add the reference detector as selection detector!" @@ -922,16 +880,14 @@ void CbmAlgoBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) { } // if( fRefDet == selDet ) /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det) == selDet) { LOG(warning) << "CbmAlgoBuildRawEvents::AddDetector => " "Doing nothing, selection detector already in list!" << selDet.sName; return; } // if( (*det) == selDet ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) fvDets.push_back(selDet); /// Update the variables storing the earliest and latest time window boundaries @@ -939,86 +895,74 @@ void CbmAlgoBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) { /// Update the variable storing the size if widest time window for overlap detection UpdateWidestTimeWinRange(); } -void CbmAlgoBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) { +void CbmAlgoBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) +{ /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det) == selDet) { fvDets.erase(det); return; } // if( (*det) == selDet ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) LOG(warning) << "CbmAlgoBuildRawEvents::RemoveDetector => Doing " "nothing, selection detector not in list!" << selDet.sName; } //---------------------------------------------------------------------- -void CbmAlgoBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet, - UInt_t uVal) { +void CbmAlgoBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal) +{ /// Check first if reference detector if (fRefDet.detId == selDet) { fRefDet.fuTriggerMinDigis = uVal; - LOG(debug) << "Set Trigger min limit for " << fRefDet.sName << " to " - << uVal; + LOG(debug) << "Set Trigger min limit for " << fRefDet.sName << " to " << uVal; return; } // if( fRefDet == selDet ) /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det).detId == selDet) { (*det).fuTriggerMinDigis = uVal; - LOG(debug) << "Set Trigger min limit for " << (*det).sName << " to " - << uVal; + LOG(debug) << "Set Trigger min limit for " << (*det).sName << " to " << uVal; return; } // if( (*det).detId == selDet ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) - LOG(warning) - << "CbmAlgoBuildRawEvents::SetTriggerMinNumber => " - "Doing nothing, detector neither reference nor in selection list!" - << selDet; + LOG(warning) << "CbmAlgoBuildRawEvents::SetTriggerMinNumber => " + "Doing nothing, detector neither reference nor in selection list!" + << selDet; } -void CbmAlgoBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet, - Int_t iVal) { +void CbmAlgoBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal) +{ /// Check first if reference detector if (fRefDet.detId == selDet) { fRefDet.fiTriggerMaxDigis = iVal; - LOG(debug) << "Set Trigger min limit for " << fRefDet.sName << " to " - << iVal; + LOG(debug) << "Set Trigger min limit for " << fRefDet.sName << " to " << iVal; return; } // if( fRefDet == selDet ) /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det).detId == selDet) { (*det).fiTriggerMaxDigis = iVal; - LOG(debug) << "Set Trigger min limit for " << (*det).sName << " to " - << iVal; + LOG(debug) << "Set Trigger min limit for " << (*det).sName << " to " << iVal; return; } // if( (*det).detId == selDet ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) - LOG(warning) - << "CbmAlgoBuildRawEvents::SetTriggerMaxNumber => " - "Doing nothing, detector neither reference nor in selection list!" - << selDet; + LOG(warning) << "CbmAlgoBuildRawEvents::SetTriggerMaxNumber => " + "Doing nothing, detector neither reference nor in selection list!" + << selDet; } -void CbmAlgoBuildRawEvents::SetTriggerWindow(ECbmModuleId selDet, - Double_t dWinBeg, - Double_t dWinEnd) { +void CbmAlgoBuildRawEvents::SetTriggerWindow(ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd) +{ /// Check if valid time window: end strictly after beginning if (dWinEnd <= dWinBeg) LOG(fatal) << "CbmAlgoBuildRawEvents::SetTriggerWindow => " @@ -1035,22 +979,19 @@ void CbmAlgoBuildRawEvents::SetTriggerWindow(ECbmModuleId selDet, } // if( fRefDet == selDet ) /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { if ((*det).detId == selDet) { (*det).fdTimeWinBeg = dWinBeg; (*det).fdTimeWinEnd = dWinEnd; bFound = kTRUE; } // if( (*det).detId == selDet ) - } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) + } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) if (kFALSE == bFound) { - LOG(warning) - << "CbmAlgoBuildRawEvents::SetTriggerWindow => " - "Doing nothing, detector neither reference nor in selection list!" - << selDet; + LOG(warning) << "CbmAlgoBuildRawEvents::SetTriggerWindow => " + "Doing nothing, detector neither reference nor in selection list!" + << selDet; } // if( kFALSE == bFound ) /// Update the variables storing the earliest and latest time window boundaries @@ -1058,29 +999,26 @@ void CbmAlgoBuildRawEvents::SetTriggerWindow(ECbmModuleId selDet, /// Update the variable storing the size if widest time window for overlap detection UpdateWidestTimeWinRange(); } -void CbmAlgoBuildRawEvents::UpdateTimeWinBoundariesExtrema() { +void CbmAlgoBuildRawEvents::UpdateTimeWinBoundariesExtrema() +{ /// Initialize with reference detector fdEarliestTimeWinBeg = fRefDet.fdTimeWinBeg; fdLatestTimeWinEnd = fRefDet.fdTimeWinEnd; /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { fdEarliestTimeWinBeg = std::min(fdEarliestTimeWinBeg, (*det).fdTimeWinBeg); fdLatestTimeWinEnd = std::max(fdLatestTimeWinEnd, (*det).fdTimeWinEnd); } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) } -void CbmAlgoBuildRawEvents::UpdateWidestTimeWinRange() { +void CbmAlgoBuildRawEvents::UpdateWidestTimeWinRange() +{ /// Initialize with reference detector fdWidestTimeWinRange = fRefDet.fdTimeWinEnd - fRefDet.fdTimeWinBeg; /// Loop on selection detectors - for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); - det != fvDets.end(); - ++det) { - fdWidestTimeWinRange = - std::max(fdWidestTimeWinRange, (*det).fdTimeWinEnd - (*det).fdTimeWinBeg); + for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) { + fdWidestTimeWinRange = std::max(fdWidestTimeWinRange, (*det).fdTimeWinEnd - (*det).fdTimeWinBeg); } // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det ) } //---------------------------------------------------------------------- diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h index 706cb474..efe15651 100644 --- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h +++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h @@ -23,14 +23,15 @@ /// FAIRSOFT headers (geant, boost, ...) /// C/C++ headers +#include <tuple> + +#include <boost/any.hpp> + #include <array> #include <map> #include <set> -#include <tuple> #include <vector> -#include <boost/any.hpp> - class TimesliceMetaData; class CbmEvent; class TClonesArray; @@ -39,26 +40,26 @@ class TH2; class TNamed; class TCanvas; -enum class EOverlapModeRaw { NoOverlap, MergeOverlap, AllowOverlap }; +enum class EOverlapModeRaw +{ + NoOverlap, + MergeOverlap, + AllowOverlap +}; class RawEventBuilderDetector { public: RawEventBuilderDetector() { ; } - RawEventBuilderDetector(ECbmModuleId detIdIn, - ECbmDataType dataTypeIn, - std::string sNameIn) { + RawEventBuilderDetector(ECbmModuleId detIdIn, ECbmDataType dataTypeIn, std::string sNameIn) + { detId = detIdIn; dataType = dataTypeIn; sName = sNameIn; } - RawEventBuilderDetector(ECbmModuleId detIdIn, - ECbmDataType dataTypeIn, - std::string sNameIn, - UInt_t uTriggerMinDigisIn, - Int_t iTriggerMaxDigisIn, - Double_t fdTimeWinBegIn, - Double_t fdTimeWinEndIn) - : RawEventBuilderDetector(detIdIn, dataTypeIn, sNameIn) { + RawEventBuilderDetector(ECbmModuleId detIdIn, ECbmDataType dataTypeIn, std::string sNameIn, UInt_t uTriggerMinDigisIn, + Int_t iTriggerMaxDigisIn, Double_t fdTimeWinBegIn, Double_t fdTimeWinEndIn) + : RawEventBuilderDetector(detIdIn, dataTypeIn, sNameIn) + { fuTriggerMinDigis = uTriggerMinDigisIn; fiTriggerMaxDigis = iTriggerMaxDigisIn; @@ -66,12 +67,8 @@ public: fdTimeWinEnd = fdTimeWinEndIn; } - bool operator==(const RawEventBuilderDetector& other) const { - return (other.detId == this->detId); - } - bool operator!=(const RawEventBuilderDetector& other) const { - return (other.detId != this->detId); - } + bool operator==(const RawEventBuilderDetector& other) const { return (other.detId == this->detId); } + bool operator!=(const RawEventBuilderDetector& other) const { return (other.detId != this->detId); } Double_t GetTimeWinRange() { return fdTimeWinEnd - fdTimeWinBeg; } @@ -107,8 +104,7 @@ static const RawEventBuilderDetector kRawEventBuilderDetPsd = RawEventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "Psd"); static const RawEventBuilderDetector kRawEventBuilderDetT0 = RawEventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0"); -static const RawEventBuilderDetector kRawEventBuilderDetUndef = - RawEventBuilderDetector(); +static const RawEventBuilderDetector kRawEventBuilderDetUndef = RawEventBuilderDetector(); class CbmAlgoBuildRawEvents { @@ -134,20 +130,11 @@ public: void SetFillHistos(Bool_t var) { fbFillHistos = var; } void ResetHistograms(Bool_t bResetTime = kTRUE); - void SetReferenceDetector(ECbmModuleId refDet, - ECbmDataType dataTypeIn, - std::string sNameIn, - UInt_t uTriggerMinDigisIn = 0, - Int_t iTriggerMaxDigisIn = -1, - Double_t fdTimeWinBegIn = -100, - Double_t fdTimeWinEndIn = 100); - void AddDetector(ECbmModuleId selDet, - ECbmDataType dataTypeIn, - std::string sNameIn, - UInt_t uTriggerMinDigisIn = 0, - Int_t iTriggerMaxDigisIn = -1, - Double_t fdTimeWinBegIn = -100, - Double_t fdTimeWinEndIn = 100); + void SetReferenceDetector(ECbmModuleId refDet, ECbmDataType dataTypeIn, std::string sNameIn, + UInt_t uTriggerMinDigisIn = 0, Int_t iTriggerMaxDigisIn = -1, + Double_t fdTimeWinBegIn = -100, Double_t fdTimeWinEndIn = 100); + void AddDetector(ECbmModuleId selDet, ECbmDataType dataTypeIn, std::string sNameIn, UInt_t uTriggerMinDigisIn = 0, + Int_t iTriggerMaxDigisIn = -1, Double_t fdTimeWinBegIn = -100, Double_t fdTimeWinEndIn = 100); void SetReferenceDetector(RawEventBuilderDetector refDetIn); void AddDetector(RawEventBuilderDetector selDet); @@ -156,12 +143,10 @@ public: void SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal); void SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal); - void - SetTriggerWindow(ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd); + void SetTriggerWindow(ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd); - void SetTsParameters(Double_t dTsStartTime, - Double_t dTsLength, - Double_t dTsOverLength) { + void SetTsParameters(Double_t dTsStartTime, Double_t dTsLength, Double_t dTsOverLength) + { fdTsStartTime = dTsStartTime; fdTsLength = dTsLength; fdTsOverLength = dTsOverLength; @@ -169,46 +154,32 @@ public: /// Control flags void SetEventOverlapMode(EOverlapModeRaw mode) { fOverMode = mode; } - void SetIgnoreTsOverlap(Bool_t bFlagIn = kTRUE) { - fbIgnoreTsOverlap = bFlagIn; - } + void SetIgnoreTsOverlap(Bool_t bFlagIn = kTRUE) { fbIgnoreTsOverlap = bFlagIn; } - void ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn = kFALSE) { - fbUseMuchBeamtimeDigi = bFlagIn; - } + void ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn = kFALSE) { fbUseMuchBeamtimeDigi = bFlagIn; } /// For monitor algos - void AddHistoToVector(TNamed* pointer, std::string sFolder = "") { - fvpAllHistoPointers.push_back( - std::pair<TNamed*, std::string>(pointer, sFolder)); - } - std::vector<std::pair<TNamed*, std::string>> GetHistoVector() { - return fvpAllHistoPointers; + void AddHistoToVector(TNamed* pointer, std::string sFolder = "") + { + fvpAllHistoPointers.push_back(std::pair<TNamed*, std::string>(pointer, sFolder)); } - void AddCanvasToVector(TCanvas* pointer, std::string sFolder = "") { - fvpAllCanvasPointers.push_back( - std::pair<TCanvas*, std::string>(pointer, sFolder)); - } - std::vector<std::pair<TCanvas*, std::string>> GetCanvasVector() { - return fvpAllCanvasPointers; + std::vector<std::pair<TNamed*, std::string>> GetHistoVector() { return fvpAllHistoPointers; } + void AddCanvasToVector(TCanvas* pointer, std::string sFolder = "") + { + fvpAllCanvasPointers.push_back(std::pair<TCanvas*, std::string>(pointer, sFolder)); } + std::vector<std::pair<TCanvas*, std::string>> GetCanvasVector() { return fvpAllCanvasPointers; } /// Set digi containers - void SetT0Digis(const std::vector<CbmTofDigi>* T0DigiVec) { - fT0DigiVec = T0DigiVec; - } + void SetT0Digis(const std::vector<CbmTofDigi>* T0DigiVec) { fT0DigiVec = T0DigiVec; } void SetStsDigis(std::vector<CbmStsDigi>* StsDigis) { fStsDigis = StsDigis; } - void SetMuchDigis(std::vector<CbmMuchDigi>* MuchDigis) { - fMuchDigis = MuchDigis; - } + void SetMuchDigis(std::vector<CbmMuchDigi>* MuchDigis) { fMuchDigis = MuchDigis; } void SetTrdDigis(std::vector<CbmTrdDigi>* TrdDigis) { fTrdDigis = TrdDigis; } void SetTofDigis(std::vector<CbmTofDigi>* TofDigis) { fTofDigis = TofDigis; } - void SetRichDigis(std::vector<CbmRichDigi>* RichDigis) { - fRichDigis = RichDigis; - } + void SetRichDigis(std::vector<CbmRichDigi>* RichDigis) { fRichDigis = RichDigis; } void SetPsdDigis(std::vector<CbmPsdDigi>* PsdDigis) { fPsdDigis = PsdDigis; } - void - SetMuchBeamTimeDigis(std::vector<CbmMuchBeamTimeDigi>* MuchBeamTimeDigis) { + void SetMuchBeamTimeDigis(std::vector<CbmMuchBeamTimeDigi>* MuchBeamTimeDigis) + { fMuchBeamTimeDigis = MuchBeamTimeDigis; } @@ -243,27 +214,20 @@ private: /// User parameters /// Control flags - Bool_t fbIgnoreTsOverlap = kFALSE; //! Ignore data in Overlap part of the TS - Bool_t fbFillHistos {kTRUE}; //! Switch ON/OFF filling of histograms + Bool_t fbIgnoreTsOverlap = kFALSE; //! Ignore data in Overlap part of the TS + Bool_t fbFillHistos {kTRUE}; //! Switch ON/OFF filling of histograms Bool_t fbUseMuchBeamtimeDigi = kTRUE; //! Switch between MUCH digi classes /// Event building mode and detectors selection EOverlapModeRaw fOverMode {EOverlapModeRaw::AllowOverlap}; - RawEventBuilderDetector fRefDet = - RawEventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0"); + RawEventBuilderDetector fRefDet = RawEventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0"); std::vector<RawEventBuilderDetector> fvDets = { RawEventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "kSts"), - RawEventBuilderDetector(ECbmModuleId::kMuch, - ECbmDataType::kMuchDigi, - "kMuch"), + RawEventBuilderDetector(ECbmModuleId::kMuch, ECbmDataType::kMuchDigi, "kMuch"), RawEventBuilderDetector(ECbmModuleId::kTrd, ECbmDataType::kTrdDigi, "kTrd"), RawEventBuilderDetector(ECbmModuleId::kTof, ECbmDataType::kTofDigi, "kTof"), - RawEventBuilderDetector(ECbmModuleId::kRich, - ECbmDataType::kRichDigi, - "kRich"), - RawEventBuilderDetector(ECbmModuleId::kPsd, - ECbmDataType::kPsdDigi, - "kPsd")}; + RawEventBuilderDetector(ECbmModuleId::kRich, ECbmDataType::kRichDigi, "kRich"), + RawEventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "kPsd")}; Double_t fdEarliestTimeWinBeg = kdDefaultTimeWinBeg; Double_t fdLatestTimeWinEnd = kdDefaultTimeWinEnd; @@ -295,9 +259,8 @@ private: const Digi* GetDigi(UInt_t uDigi); /// Data ouptut - CbmEvent* fCurrentEvent = - nullptr; //! pointer to the event which is currently build - std::vector<CbmEvent*> fEventVector = {}; //! vector with all created events + CbmEvent* fCurrentEvent = nullptr; //! pointer to the event which is currently build + std::vector<CbmEvent*> fEventVector = {}; //! vector with all created events /// Monitoring histograms /// => Pointers should be filled with TH1*, TH2*, TProfile*, ... @@ -315,23 +278,19 @@ private: std::vector<std::pair<TCanvas*, std::string>> fvpAllCanvasPointers; //! Vector of pointers to canvases + optional folder name - TH1* fhEventTime = nullptr; //! histogram with the seed time of the events - TH1* fhEventDt = - nullptr; //! histogram with the interval in seed time of consecutive events - TH1* fhEventSize = - nullptr; //! histogram with the nb of all digis in the event - TH2* fhNbDigiPerEvtTime = - nullptr; //! histogram with the nb of all digis per event vs seed time of the events + TH1* fhEventTime = nullptr; //! histogram with the seed time of the events + TH1* fhEventDt = nullptr; //! histogram with the interval in seed time of consecutive events + TH1* fhEventSize = nullptr; //! histogram with the nb of all digis in the event + TH2* fhNbDigiPerEvtTime = nullptr; //! histogram with the nb of all digis per event vs seed time of the events std::vector<TH2*> fvhNbDigiPerEvtTimeDet = {}; //! histograms with the nb of digis in each detector per event vs seed time of the events /// Internal state variables - UInt_t fuCurEv = 0; //! Event Counter - UInt_t fuErrors = 0; //! Error Counter - UInt_t fuNrTs = 0; //! Timeslice Counter - Double_t fdPrevEvtTime = 0.; //! Save previous time information - Double_t fdPrevEvtEndTime = - 0.; //! Save previous event last digi time information + UInt_t fuCurEv = 0; //! Event Counter + UInt_t fuErrors = 0; //! Error Counter + UInt_t fuNrTs = 0; //! Timeslice Counter + Double_t fdPrevEvtTime = 0.; //! Save previous time information + Double_t fdPrevEvtEndTime = 0.; //! Save previous event last digi time information ClassDefNV(CbmAlgoBuildRawEvents, 1); }; diff --git a/reco/eventbuilder/digis/CbmBuildEventsQA.cxx b/reco/eventbuilder/digis/CbmBuildEventsQA.cxx index 6a0026e9..fe1ebea8 100644 --- a/reco/eventbuilder/digis/CbmBuildEventsQA.cxx +++ b/reco/eventbuilder/digis/CbmBuildEventsQA.cxx @@ -11,10 +11,13 @@ #include "CbmMatch.h" #include "CbmModuleList.h" #include "CbmStsDigi.h" + #include "FairLogger.h" #include "FairRootManager.h" + #include "TClonesArray.h" #include "TStopwatch.h" + #include <cassert> #include <iomanip> #include <iostream> @@ -24,8 +27,7 @@ using namespace std; // ===== Constructor ===================================================== -CbmBuildEventsQA::CbmBuildEventsQA() - : FairTask("BuildEventsQA"), fEvents(NULL), fNofEntries(0) {} +CbmBuildEventsQA::CbmBuildEventsQA() : FairTask("BuildEventsQA"), fEvents(NULL), fNofEntries(0) {} // =========================================================================== @@ -35,7 +37,8 @@ CbmBuildEventsQA::~CbmBuildEventsQA() {} // ===== Task initialisation ============================================= -InitStatus CbmBuildEventsQA::Init() { +InitStatus CbmBuildEventsQA::Init() +{ // --- Get FairRootManager instance FairRootManager* ioman = FairRootManager::Instance(); @@ -53,12 +56,9 @@ InitStatus CbmBuildEventsQA::Init() { fDigiMan->Init(); // --- Check input data - for (ECbmModuleId system = ECbmModuleId::kMvd; - system < ECbmModuleId::kNofSystems; - ++system) { + for (ECbmModuleId system = ECbmModuleId::kMvd; system < ECbmModuleId::kNofSystems; ++system) { if (fDigiMan->IsMatchPresent(system)) { - LOG(info) << GetName() << ": Found match branch for " - << CbmModuleList::GetModuleNameCaps(system); + LOG(info) << GetName() << ": Found match branch for " << CbmModuleList::GetModuleNameCaps(system); fSystems.push_back(system); } } @@ -73,7 +73,8 @@ InitStatus CbmBuildEventsQA::Init() { // ===== Task execution ================================================== -void CbmBuildEventsQA::Exec(Option_t*) { +void CbmBuildEventsQA::Exec(Option_t*) +{ // --- Time and counters TStopwatch timer; @@ -92,10 +93,9 @@ void CbmBuildEventsQA::Exec(Option_t*) { continue; } // if (-1 == event->GetMatch()->GetNofLinks()) Int_t mcEventNr = event->GetMatch()->GetMatchedLink().GetEntry(); - LOG(info) << GetName() << ": Event " << event->GetNumber() - << ", digis in event: " << event->GetNofData() - << ", links to MC events: " << event->GetMatch()->GetNofLinks() - << ", matched MC event number " << mcEventNr; + LOG(info) << GetName() << ": Event " << event->GetNumber() << ", digis in event: " << event->GetNofData() + << ", links to MC events: " << event->GetMatch()->GetNofLinks() << ", matched MC event number " + << mcEventNr; // --- Loop over all detector systems for (ECbmModuleId& system : fSystems) { @@ -119,8 +119,7 @@ void CbmBuildEventsQA::Exec(Option_t*) { // --- Check MC event of digi match if (digiMatch->GetNofLinks()) { - if (digiMatch->GetMatchedLink().GetEntry() == mcEventNr) - nDigiCorrect++; + if (digiMatch->GetMatchedLink().GetEntry() == mcEventNr) nDigiCorrect++; } for (Int_t iLink = 0; iLink < digiMatch->GetNofLinks(); iLink++) { @@ -142,30 +141,23 @@ void CbmBuildEventsQA::Exec(Option_t*) { assert(match); Int_t mcEvent = -1; - if (match->GetNofLinks()) { - mcEvent = match->GetMatchedLink().GetEntry(); - } + if (match->GetNofLinks()) { mcEvent = match->GetMatchedLink().GetEntry(); } //digi belongs to current event if (mcEvent == mcEventNr) totEventDigis++; } // --- QA output if (0 < nDigis) { - LOG(info) << GetName() << ": Detector " - << CbmModuleList::GetModuleNameCaps(system); - LOG(info) << "Correct digis " << nDigiCorrect << " / " << nDigis - << " = " << 100. * Double_t(nDigiCorrect) / Double_t(nDigis) - << " %"; - LOG(info) << "Correct digi links " << nLinksCorrect << " / " << nLinks - << " = " << 100. * Double_t(nLinksCorrect) / Double_t(nLinks) - << " % "; - LOG(info) << "Digi percentage found " << nDigiCorrect << " / " - << totEventDigis << " = " - << 100. * Double_t(nDigiCorrect) / Double_t(totEventDigis) - << " % "; - } else { - LOG(info) << GetName() << ": Detector " - << CbmModuleList::GetModuleNameCaps(system) + LOG(info) << GetName() << ": Detector " << CbmModuleList::GetModuleNameCaps(system); + LOG(info) << "Correct digis " << nDigiCorrect << " / " << nDigis << " = " + << 100. * Double_t(nDigiCorrect) / Double_t(nDigis) << " %"; + LOG(info) << "Correct digi links " << nLinksCorrect << " / " << nLinks << " = " + << 100. * Double_t(nLinksCorrect) / Double_t(nLinks) << " % "; + LOG(info) << "Digi percentage found " << nDigiCorrect << " / " << totEventDigis << " = " + << 100. * Double_t(nDigiCorrect) / Double_t(totEventDigis) << " % "; + } + else { + LOG(info) << GetName() << ": Detector " << CbmModuleList::GetModuleNameCaps(system) << ", no digis in this event"; } // else of if( 0 < nDigis ) @@ -177,15 +169,15 @@ void CbmBuildEventsQA::Exec(Option_t*) { timer.Stop(); // --- Execution log - LOG(info) << "+ " << setw(20) << GetName() << ": Entry " << setw(6) << right - << fNofEntries << ", real time " << fixed << setprecision(6) - << timer.RealTime() << " s, events: " << fEvents->GetEntriesFast(); + LOG(info) << "+ " << setw(20) << GetName() << ": Entry " << setw(6) << right << fNofEntries << ", real time " << fixed + << setprecision(6) << timer.RealTime() << " s, events: " << fEvents->GetEntriesFast(); } // =========================================================================== // ===== Match event ===================================================== -void CbmBuildEventsQA::MatchEvent(CbmEvent* event) { +void CbmBuildEventsQA::MatchEvent(CbmEvent* event) +{ // --- Get event match object. If present, will be cleared first. If not, // --- it will be created. @@ -194,7 +186,8 @@ void CbmBuildEventsQA::MatchEvent(CbmEvent* event) { LOG(info) << "No match data found in event. Creating new."; match = new CbmMatch(); event->SetMatch(match); - } else { + } + else { LOG(info) << "Match data found in event. Clearing."; match->ClearLinks(); } @@ -206,8 +199,7 @@ void CbmBuildEventsQA::MatchEvent(CbmEvent* event) { //Skip if reference detectors are set and current system isn't one if (!fRefDetectors.empty() - && std::find(fRefDetectors.begin(), fRefDetectors.end(), system) - == fRefDetectors.end()) { + && std::find(fRefDetectors.begin(), fRefDetectors.end(), system) == fRefDetectors.end()) { continue; } @@ -236,7 +228,8 @@ void CbmBuildEventsQA::MatchEvent(CbmEvent* event) { // ===== Get digi type ===================================================== -ECbmDataType CbmBuildEventsQA::GetDigiType(ECbmModuleId system) { +ECbmDataType CbmBuildEventsQA::GetDigiType(ECbmModuleId system) +{ switch (system) { case ECbmModuleId::kMvd: return ECbmDataType::kMvdDigi; case ECbmModuleId::kSts: return ECbmDataType::kStsDigi; diff --git a/reco/eventbuilder/digis/CbmBuildEventsQA.h b/reco/eventbuilder/digis/CbmBuildEventsQA.h index adeaeb24..33c20d02 100644 --- a/reco/eventbuilder/digis/CbmBuildEventsQA.h +++ b/reco/eventbuilder/digis/CbmBuildEventsQA.h @@ -6,6 +6,7 @@ #define CBMBUILDEVENTSQA_H 1 #include "CbmDefs.h" + #include <FairTask.h> class TClonesArray; @@ -35,9 +36,7 @@ public: virtual void Exec(Option_t* opt); /** Add a reference detector **/ - void AddRefDetector(ECbmModuleId RefDetector) { - fRefDetectors.push_back(RefDetector); - } + void AddRefDetector(ECbmModuleId RefDetector) { fRefDetectors.push_back(RefDetector); } private: CbmDigiManager* fDigiMan = nullptr; //! diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx index 8ca20dc4..9aae7808 100644 --- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx +++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx @@ -6,8 +6,8 @@ * copied verbatim in the file "LICENSE" * ********************************************************************************/ #include "CbmTaskBuildRawEvents.h" -#include "CbmAlgoBuildRawEvents.h" +#include "CbmAlgoBuildRawEvents.h" #include "CbmDigiManager.h" #include "CbmEvent.h" @@ -22,8 +22,8 @@ #include <TFile.h> // ---- Default constructor ------------------------------------------- -CbmTaskBuildRawEvents::CbmTaskBuildRawEvents() - : FairTask("CbmTaskBuildRawEvents") { +CbmTaskBuildRawEvents::CbmTaskBuildRawEvents() : FairTask("CbmTaskBuildRawEvents") +{ /// Create Algo. To be made generic/switchable when more event building algo are available! fpAlgo = new CbmAlgoBuildRawEvents(); } @@ -32,20 +32,21 @@ CbmTaskBuildRawEvents::CbmTaskBuildRawEvents() CbmTaskBuildRawEvents::~CbmTaskBuildRawEvents() {} // ---- Initialisation ---------------------------------------------- -void CbmTaskBuildRawEvents::SetParContainers() { +void CbmTaskBuildRawEvents::SetParContainers() +{ /// Nothing to do } // ---- Init ---------------------------------------------------------- -InitStatus CbmTaskBuildRawEvents::Init() { +InitStatus CbmTaskBuildRawEvents::Init() +{ /// Get a handle from the IO manager FairRootManager* ioman = FairRootManager::Instance(); //T0 not included in digi manager. fT0Digis = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi"); - if (!fT0Digis) { - LOG(info) << "No T0 digi input."; - } else { + if (!fT0Digis) { LOG(info) << "No T0 digi input."; } + else { LOG(info) << "T0 digi input."; fpAlgo->SetT0Digis(fT0Digis); } @@ -56,59 +57,54 @@ InitStatus CbmTaskBuildRawEvents::Init() { fDigiMan->Init(); //Init STS digis - if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { - LOG(info) << "No STS digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digi input."; } + else { LOG(info) << "STS digi input."; fStsDigis = new std::vector<CbmStsDigi>; fpAlgo->SetStsDigis(fStsDigis); } //Init MUCH digis - if (!fDigiMan->IsPresent(ECbmModuleId::kMuch)) { - LOG(info) << "No MUCH digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kMuch)) { LOG(info) << "No MUCH digi input."; } + else { LOG(info) << "MUCH digi input."; if (fbUseMuchBeamtimeDigi) { fMuchBeamTimeDigis = new std::vector<CbmMuchBeamTimeDigi>; fpAlgo->SetMuchBeamTimeDigis(fMuchBeamTimeDigis); - } else { + } + else { fMuchDigis = new std::vector<CbmMuchDigi>; fpAlgo->SetMuchDigis(fMuchDigis); } } //Init TRD digis - if (!fDigiMan->IsPresent(ECbmModuleId::kTrd)) { - LOG(info) << "No TRD digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kTrd)) { LOG(info) << "No TRD digi input."; } + else { LOG(info) << "TRD digi input."; fTrdDigis = new std::vector<CbmTrdDigi>; fpAlgo->SetTrdDigis(fTrdDigis); } //Init TOF digis - if (!fDigiMan->IsPresent(ECbmModuleId::kTof)) { - LOG(info) << "No TOF digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kTof)) { LOG(info) << "No TOF digi input."; } + else { LOG(info) << "TOF digi input."; fTofDigis = new std::vector<CbmTofDigi>; fpAlgo->SetTofDigis(fTofDigis); } //Init RICH digis - if (!fDigiMan->IsPresent(ECbmModuleId::kRich)) { - LOG(info) << "No RICH digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kRich)) { LOG(info) << "No RICH digi input."; } + else { LOG(info) << "RICH digi input."; fRichDigis = new std::vector<CbmRichDigi>; fpAlgo->SetRichDigis(fRichDigis); } //Init PSD digis - if (!fDigiMan->IsPresent(ECbmModuleId::kPsd)) { - LOG(info) << "No PSD digi input."; - } else { + if (!fDigiMan->IsPresent(ECbmModuleId::kPsd)) { LOG(info) << "No PSD digi input."; } + else { LOG(info) << "PSD digi input."; fPsdDigis = new std::vector<CbmPsdDigi>; fpAlgo->SetPsdDigis(fPsdDigis); @@ -116,14 +112,12 @@ InitStatus CbmTaskBuildRawEvents::Init() { /// Register output array (CbmEvent) fEvents = new TClonesArray("CbmEvent", 100); - ioman->Register( - "CbmEvent", "Cbm_Event", fEvents, IsOutputBranchPersistent("CbmEvent")); + ioman->Register("CbmEvent", "Cbm_Event", fEvents, IsOutputBranchPersistent("CbmEvent")); if (!fEvents) LOG(fatal) << "Output branch was not created"; /// Call Algo Init method - if (kTRUE == fpAlgo->InitAlgo()) - return kSUCCESS; + if (kTRUE == fpAlgo->InitAlgo()) return kSUCCESS; else return kFATAL; } @@ -132,7 +126,8 @@ InitStatus CbmTaskBuildRawEvents::Init() { InitStatus CbmTaskBuildRawEvents::ReInit() { return kSUCCESS; } // ---- Exec ---------------------------------------------------------- -void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { +void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) +{ LOG(debug2) << "CbmTaskBuildRawEvents::Exec => Starting sequence"; //Read STS digis @@ -143,8 +138,7 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { fStsDigis->insert(fStsDigis->begin() + i, *Digi); } LOG(debug) << "Read: " << fStsDigis->size() << " STS digis."; - LOG(debug) << "In DigiManager: " - << fDigiMan->GetNofDigis(ECbmModuleId::kSts) << " STS digis."; + LOG(debug) << "In DigiManager: " << fDigiMan->GetNofDigis(ECbmModuleId::kSts) << " STS digis."; } //Read MUCH digis @@ -155,18 +149,16 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { const CbmMuchBeamTimeDigi* Digi = fDigiMan->Get<CbmMuchBeamTimeDigi>(i); fMuchBeamTimeDigis->insert(fMuchBeamTimeDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kMuch) - << " MUCH digis."; - LOG(debug) << "In DigiManager: " << fMuchBeamTimeDigis->size() - << " MUCH digis."; - } else { + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kMuch) << " MUCH digis."; + LOG(debug) << "In DigiManager: " << fMuchBeamTimeDigis->size() << " MUCH digis."; + } + else { fMuchDigis->clear(); for (Int_t i = 0; i < fDigiMan->GetNofDigis(ECbmModuleId::kMuch); i++) { const CbmMuchDigi* Digi = fDigiMan->Get<CbmMuchDigi>(i); fMuchDigis->insert(fMuchDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kMuch) - << " MUCH digis."; + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kMuch) << " MUCH digis."; LOG(debug) << "In DigiManager: " << fMuchDigis->size() << " MUCH digis."; } } @@ -178,8 +170,7 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { const CbmTrdDigi* Digi = fDigiMan->Get<CbmTrdDigi>(i); fTrdDigis->insert(fTrdDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kTrd) - << " TRD digis."; + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kTrd) << " TRD digis."; LOG(debug) << "In DigiManager: " << fTrdDigis->size() << " TRD digis."; } @@ -190,8 +181,7 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { const CbmTofDigi* Digi = fDigiMan->Get<CbmTofDigi>(i); fTofDigis->insert(fTofDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kTof) - << " TOF digis."; + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kTof) << " TOF digis."; LOG(debug) << "In DigiManager: " << fTofDigis->size() << " TOF digis."; } @@ -202,8 +192,7 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { const CbmRichDigi* Digi = fDigiMan->Get<CbmRichDigi>(i); fRichDigis->insert(fRichDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kRich) - << " RICH digis."; + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kRich) << " RICH digis."; LOG(debug) << "In DigiManager: " << fRichDigis->size() << " RICH digis."; } @@ -214,8 +203,7 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { const CbmPsdDigi* Digi = fDigiMan->Get<CbmPsdDigi>(i); fPsdDigis->insert(fPsdDigis->begin() + i, *Digi); } - LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kPsd) - << " PSD digis."; + LOG(debug) << "Read: " << fDigiMan->GetNofDigis(ECbmModuleId::kPsd) << " PSD digis."; LOG(debug) << "In DigiManager: " << fPsdDigis->size() << " PSD digis."; } @@ -229,7 +217,8 @@ void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) { // ---- Finish -------------------------------------------------------- -void CbmTaskBuildRawEvents::Finish() { +void CbmTaskBuildRawEvents::Finish() +{ if (fbFillHistos) { SaveHistos(); } // if( fbFillHistos ) /// Call Algo finish method @@ -237,7 +226,8 @@ void CbmTaskBuildRawEvents::Finish() { } //---------------------------------------------------------------------- -void CbmTaskBuildRawEvents::FillOutput() { +void CbmTaskBuildRawEvents::FillOutput() +{ /// Clear TClonesArray before usage. fEvents->Delete(); @@ -248,20 +238,17 @@ void CbmTaskBuildRawEvents::FillOutput() { for (CbmEvent* event : vEvents) { LOG(debug) << "Vector: " << event->ToString(); new ((*fEvents)[fEvents->GetEntriesFast()]) CbmEvent(std::move(*event)); - LOG(debug) << "TClonesArray: " - << static_cast<CbmEvent*>( - fEvents->At(fEvents->GetEntriesFast() - 1)) - ->ToString(); + LOG(debug) << "TClonesArray: " << static_cast<CbmEvent*>(fEvents->At(fEvents->GetEntriesFast() - 1))->ToString(); } // for( CbmEvent* event: vEvents ) /// Clear event vector after usage fpAlgo->ClearEventVector(); } //---------------------------------------------------------------------- -void CbmTaskBuildRawEvents::SaveHistos() { +void CbmTaskBuildRawEvents::SaveHistos() +{ /// Obtain vector of pointers on each histo from the algo (+ optionally desired folder) - std::vector<std::pair<TNamed*, std::string>> vHistos = - fpAlgo->GetHistoVector(); + std::vector<std::pair<TNamed*, std::string>> vHistos = fpAlgo->GetHistoVector(); /// (Re-)Create ROOT file to store the histos TDirectory* oldDir = NULL; @@ -290,55 +277,56 @@ void CbmTaskBuildRawEvents::SaveHistos() { histoFile->Close(); } //---------------------------------------------------------------------- -void CbmTaskBuildRawEvents::SetFillHistos(Bool_t bFlag) { +void CbmTaskBuildRawEvents::SetFillHistos(Bool_t bFlag) +{ fbFillHistos = bFlag; if (nullptr != fpAlgo) fpAlgo->SetFillHistos(fbFillHistos); } -void CbmTaskBuildRawEvents::SetOutFilename(TString sNameIn) { - fsOutFileName = sNameIn; -} +void CbmTaskBuildRawEvents::SetOutFilename(TString sNameIn) { fsOutFileName = sNameIn; } -void CbmTaskBuildRawEvents::SetReferenceDetector( - RawEventBuilderDetector refDet) { +void CbmTaskBuildRawEvents::SetReferenceDetector(RawEventBuilderDetector refDet) +{ if (nullptr != fpAlgo) fpAlgo->SetReferenceDetector(refDet); } -void CbmTaskBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) { +void CbmTaskBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) +{ if (nullptr != fpAlgo) fpAlgo->AddDetector(selDet); } -void CbmTaskBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) { +void CbmTaskBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) +{ if (nullptr != fpAlgo) fpAlgo->RemoveDetector(selDet); } -void CbmTaskBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet, - UInt_t uVal) { +void CbmTaskBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal) +{ if (nullptr != fpAlgo) fpAlgo->SetTriggerMinNumber(selDet, uVal); } -void CbmTaskBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet, - Int_t iVal) { +void CbmTaskBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal) +{ if (nullptr != fpAlgo) fpAlgo->SetTriggerMaxNumber(selDet, iVal); } -void CbmTaskBuildRawEvents::SetTriggerWindow(ECbmModuleId det, - Double_t dWinBeg, - Double_t dWinEnd) { +void CbmTaskBuildRawEvents::SetTriggerWindow(ECbmModuleId det, Double_t dWinBeg, Double_t dWinEnd) +{ if (nullptr != fpAlgo) fpAlgo->SetTriggerWindow(det, dWinBeg, dWinEnd); } -void CbmTaskBuildRawEvents::SetTsParameters(Double_t dTsStartTime, - Double_t dTsLength, - Double_t dTsOverLength) { - if (nullptr != fpAlgo) - fpAlgo->SetTsParameters(dTsStartTime, dTsLength, dTsOverLength); +void CbmTaskBuildRawEvents::SetTsParameters(Double_t dTsStartTime, Double_t dTsLength, Double_t dTsOverLength) +{ + if (nullptr != fpAlgo) fpAlgo->SetTsParameters(dTsStartTime, dTsLength, dTsOverLength); } -void CbmTaskBuildRawEvents::SetEventOverlapMode(EOverlapModeRaw mode) { +void CbmTaskBuildRawEvents::SetEventOverlapMode(EOverlapModeRaw mode) +{ if (nullptr != fpAlgo) fpAlgo->SetEventOverlapMode(mode); } -void CbmTaskBuildRawEvents::SetIgnoreTsOverlap(Bool_t bFlagIn) { +void CbmTaskBuildRawEvents::SetIgnoreTsOverlap(Bool_t bFlagIn) +{ if (nullptr != fpAlgo) fpAlgo->SetIgnoreTsOverlap(bFlagIn); } -void CbmTaskBuildRawEvents::ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn) { +void CbmTaskBuildRawEvents::ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn) +{ if (nullptr != fpAlgo) fpAlgo->ChangeMuchBeamtimeDigiFlag(bFlagIn); fbUseMuchBeamtimeDigi = bFlagIn; } diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h index 8eab5aab..d79b95c8 100644 --- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h +++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h @@ -22,10 +22,11 @@ #include "CbmTofDigi.h" #include "CbmTrdDigi.h" +#include <tuple> + #include <array> #include <map> #include <set> -#include <tuple> #include <vector> class CbmDigiManager; @@ -79,9 +80,7 @@ public: void SetTriggerWindow(ECbmModuleId det, Double_t dWinBeg, Double_t dWinEnd); - void SetTsParameters(Double_t dTsStartTime, - Double_t dTsLength, - Double_t dTsOverLength); + void SetTsParameters(Double_t dTsStartTime, Double_t dTsLength, Double_t dTsOverLength); void SetEventOverlapMode(EOverlapModeRaw mode); void SetIgnoreTsOverlap(Bool_t bFlagIn); -- GitLab