diff --git a/reco/detectors/trd/CbmTrdClusterFinder.cxx b/reco/detectors/trd/CbmTrdClusterFinder.cxx index 0a35767ccb79bafad056ca1f45448be335af2a0e..491bd4e479b7fd65ab95a87fd14fb183ddffd2a9 100644 --- a/reco/detectors/trd/CbmTrdClusterFinder.cxx +++ b/reco/detectors/trd/CbmTrdClusterFinder.cxx @@ -144,13 +144,13 @@ void CbmTrdClusterFinder::Exec(Option_t* /*option*/) if (mod == nullptr) { continue; } - mod->AddDigi(digi, idigi); } /// TRD 2D std::map<int, std::vector<CbmTrdModuleRec2D::inputType>> inputData; + // Calibrate digi input for (size_t idigi(0); idigi < nDigis; idigi++) { const CbmTrdDigi* digi = CbmDigiManager::Instance()->Get<CbmTrdDigi>(idigi); const int modAddress = digi->GetAddressModule(); @@ -163,17 +163,26 @@ void CbmTrdClusterFinder::Exec(Option_t* /*option*/) if (idigi == 500001) { break; } - - CbmTrdModuleRec2D* mod = dynamic_cast<CbmTrdModuleRec2D*>(imod->second); - if (mod == nullptr) { + if (dynamic_cast<CbmTrdModuleRec2D*>(imod->second) == nullptr) { continue; } auto [chT, chR, tm, row] = CalibDigi(digi); inputData[modAddress].emplace_back(chT, chR, tm, row, idigi); + } - mod->AddDigi(digi, idigi); + // Add digis to modules + for (auto imod = fModules.begin(); imod != fModules.end(); imod++) { + CbmTrdModuleRec2D* mod = dynamic_cast<CbmTrdModuleRec2D*>(imod->second); + if (mod == nullptr) { + continue; + } + for (auto& input : inputData[imod->first]) { + mod->AddDigi(input); + } } +////////////// TO DO: Test sortedness and effect of sorting + for (auto imod = fModules.begin(); imod != fModules.end(); imod++) { CbmTrdModuleRec* mod = imod->second; fNrClusters += mod->FindClusters(); diff --git a/reco/detectors/trd/CbmTrdModuleRec2D.cxx b/reco/detectors/trd/CbmTrdModuleRec2D.cxx index 31d537b2d12509e82a6353eaec43ae55415783d3..5337075049cf0746c265e1bf74045d0fb1cf7367 100644 --- a/reco/detectors/trd/CbmTrdModuleRec2D.cxx +++ b/reco/detectors/trd/CbmTrdModuleRec2D.cxx @@ -79,18 +79,19 @@ std::tuple<uint16_t, uint16_t, int, int> CbmTrdModuleRec2D::CalibDigi(const CbmT return std::make_tuple(chT, chR, tm, row); } + //_______________________________________________________________________________ -Bool_t CbmTrdModuleRec2D::AddDigi(const CbmTrdDigi* d, size_t id) -{ +//Bool_t CbmTrdModuleRec2D::AddDigi(const CbmTrdDigi* d, size_t id) +//{ /** Add digi to cluster fragments. At first clusters are ordered on pad rows and time. * No channel ordering is assumed. The time condition for a digi to enter a cluster * chunk is to have abs(dt)<5 wrt cluster t0 */ - assert(d->GetType() == CbmTrdDigi::eCbmTrdAsicType::kFASP); +// assert(d->GetType() == CbmTrdDigi::eCbmTrdAsicType::kFASP); - auto [chT, chR, tm, row] = CalibDigi(d); - return AddDigi(std::make_tuple(chT, chR, tm, row, id)); -} +// auto [chT, chR, tm, row] = CalibDigi(d); +// return AddDigi(std::make_tuple(chT, chR, tm, row, id)); +//} //_______________________________________________________________________________ Bool_t CbmTrdModuleRec2D::AddDigi(const inputType& in) diff --git a/reco/detectors/trd/CbmTrdModuleRec2D.h b/reco/detectors/trd/CbmTrdModuleRec2D.h index 0f0c4c439656a8e38d6d84ae22668da562ea02f7..d3fb3e70a9e7314784b7bb75d79cfbe9a76a2269 100644 --- a/reco/detectors/trd/CbmTrdModuleRec2D.h +++ b/reco/detectors/trd/CbmTrdModuleRec2D.h @@ -52,7 +52,7 @@ class CbmTrdModuleRec2D : public CbmTrdModuleRec { /** \brief Add digi to local module **/ - virtual Bool_t AddDigi(const CbmTrdDigi* d, size_t id); + //virtual Bool_t AddDigi(const CbmTrdDigi* d, size_t id); virtual Bool_t AddDigi(const inputType& in); virtual void DrawHit(CbmTrdHit*) const { ; }