diff --git a/reco/detectors/trd/CbmTrdClusterFinder.cxx b/reco/detectors/trd/CbmTrdClusterFinder.cxx index 96990f7ff44dc9a36484901157cce642a6e81b25..f6ce97c76ca8a45c242662a082425f9c0e7e65f5 100644 --- a/reco/detectors/trd/CbmTrdClusterFinder.cxx +++ b/reco/detectors/trd/CbmTrdClusterFinder.cxx @@ -35,11 +35,10 @@ // #include "TCanvas.h" // #include "TImage.h" +#include <cmath> #include <iomanip> #include <iostream> -#include <cmath> - using std::fixed; using std::left; using std::right; @@ -73,14 +72,6 @@ CbmTrdClusterFinder::~CbmTrdClusterFinder() // } } -//_____________________________________________________________________ -Bool_t CbmTrdClusterFinder::AddCluster(CbmTrdCluster* c) -{ - Int_t ncl(fClusters->GetEntriesFast()); - new ((*fClusters)[ncl++]) CbmTrdCluster(*c); - return kTRUE; -} - // ---- addDigisToModules ---- UInt_t CbmTrdClusterFinder::addDigisToModules() { @@ -103,19 +94,6 @@ UInt_t CbmTrdClusterFinder::addDigisToModules() return ndigis; } -// ---- addDigisToModules ---- -UInt_t CbmTrdClusterFinder::addDigisToModules(CbmEvent* event) -{ - UInt_t ndigis = static_cast<UInt_t>(event->GetNofData(ECbmDataType::kTrdDigi)); - if (ndigis == 0) return 0; - for (size_t idigi = 0; idigi < ndigis; idigi++) { - auto digiindex = event->GetIndex(ECbmDataType::kTrdDigi, idigi); - addDigiToModule(digiindex); - } - return ndigis; -} - - // ---- addDigiToModule ---- void CbmTrdClusterFinder::addDigiToModule(UInt_t digiIdx) { @@ -126,7 +104,8 @@ void CbmTrdClusterFinder::addDigiToModule(UInt_t digiIdx) Int_t moduleAddress = digi->GetAddressModule(); std::map<Int_t, CbmTrdModuleRec*>::iterator imod = fModules.find(moduleAddress); - if (imod == fModules.end()) mod = AddModule(digi); + if (imod == fModules.end()) + mod = AddModule(digi); else mod = imod->second; @@ -238,37 +217,7 @@ InitStatus CbmTrdClusterFinder::Init() fClusters = new TClonesArray("CbmTrdCluster", 100); ioman->Register("TrdCluster", "TRD", fClusters, IsOutputBranchPersistent("TrdCluster")); - // Identify the time order of events based on the following conditions : - // 1. Existence of "CbmEvent" branch means that a form of DigiEventBuilder was run before (for - // both data and simulations) and it should be used UNLESS the user EXPLICITELY specify NOT TO. - // 2. Existence of "TimeSlice" branch "IsEvent() == true" for simulations - fEvents = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent")); - bool digiEvent(false); - CbmTimeSlice* ts = dynamic_cast<CbmTimeSlice*>(ioman->GetObject("TimeSlice.")); - if (ts != nullptr) { digiEvent = ts->IsEvent(); } - LOG(info) << GetName() << ": Event trigger " << (fEvents ? "found" : "miss") << "; digi organized " - << (digiEvent ? "EbyE" : "Timebased") << "."; - - // If activated by the user, the clusterizer will look for the CbmEvent branch, to only use Digis connected to a CbmEvent. If no CbmEvent branch is found all digis in the TrdDigi branch are automatically used. - if (UseOnlyEventDigis()) { - if (fEvents == nullptr) { - LOG(warn) << GetName() - << ": Event mode selected but no CbmEvent branch found ! Processing all digi from the list."; - SetUseOnlyEventDigis(false); - } - } - else { - if (fEvents) { - LOG(warn) << GetName() - << ": CbmEvent branch found but full digi stream asked by user ! Processing all digi from the list."; - fEvents = nullptr; - } - } - - if (IsTimeBased() && digiEvent) { - LOG(warn) << GetName() << ": Timebased mode selected but digi EbyE ! Processing digi from event (simulation EbyE)."; - SetTimeBased(false); - } + fEvents = nullptr; // // Get the full geometry information of the detector gas layers and store // // them with the CbmTrdModuleRec. This information can then be used for @@ -328,39 +277,18 @@ void CbmTrdClusterFinder::Exec(Option_t* /*option*/) UInt_t nDigis = 0; UInt_t nEvents = 0; - if (UseOnlyEventDigis()) { - for (auto eventobj : *fEvents) { - timer.Start(); - auto event = static_cast<CbmEvent*>(eventobj); - nDigis = addDigisToModules(event); - processDigisInModules(nDigis, event); - fNrEvents++; - nEvents++; - nDigisUsed += nDigis; - timer.Stop(); - if (DoDebugPrintouts()) { - LOG(info) << GetName() << "::Exec : Event Nr: " << fNrEvents; - LOG(info) << GetName() << "::Exec : real time=" << timer.RealTime() << " CPU time=" << timer.CpuTime(); - } - fProcessTime += timer.RealTime(); - timer.Reset(); - } - } - - if (!UseOnlyEventDigis()) { - timer.Start(); - nDigis = addDigisToModules(); - processDigisInModules(nDigis); - fNrEvents++; - nDigisUsed = nDigis; - timer.Stop(); - if (DoDebugPrintouts()) { - LOG(info) << GetName() << "::Exec : Event Nr: " << fNrEvents; - LOG(info) << GetName() << "::Exec : real time=" << timer.RealTime() << " CPU time=" << timer.CpuTime(); - } - fProcessTime += timer.RealTime(); - timer.Reset(); + timer.Start(); + nDigis = addDigisToModules(); + processDigisInModules(nDigis); + fNrEvents++; + nDigisUsed = nDigis; + timer.Stop(); + if (DoDebugPrintouts()) { + LOG(info) << GetName() << "::Exec : Event Nr: " << fNrEvents; + LOG(info) << GetName() << "::Exec : real time=" << timer.RealTime() << " CPU time=" << timer.CpuTime(); } + fProcessTime += timer.RealTime(); + timer.Reset(); timerTs.Stop(); stringstream logOut; diff --git a/reco/detectors/trd/CbmTrdClusterFinder.h b/reco/detectors/trd/CbmTrdClusterFinder.h index fd558db7503655ef6437facf2216e89c573679f0..56cc7f808877f68c74adb7609fbacaadb343c45f 100644 --- a/reco/detectors/trd/CbmTrdClusterFinder.h +++ b/reco/detectors/trd/CbmTrdClusterFinder.h @@ -152,9 +152,6 @@ public: set ? SETBIT(fgConfig, kOnlyEventDigis) : CLRBIT(fgConfig, kOnlyEventDigis); } -protected: - /** \brief Save one finished cluster to the output*/ - Bool_t AddCluster(CbmTrdCluster* c); private: CbmTrdClusterFinder(const CbmTrdClusterFinder&); @@ -169,13 +166,8 @@ private: */ UInt_t addDigisToModules(); - /** - * @brief Add all digis connected to the passed event to the corresponding modules - * - * @param event - * @return UInt_t - */ - UInt_t addDigisToModules(CbmEvent* event); + + /** * @brief Add the digi in the TrdDigi branch at the passed digiIdx to its corresponding module