Skip to content
Snippets Groups Projects
Commit 639d9d73 authored by Dominik Smith's avatar Dominik Smith
Browse files

Moved module initialization to Init().

parent f6e77611
No related branches found
No related tags found
1 merge request!1646Draft: TRD cluster finder restructuring
...@@ -84,30 +84,18 @@ InitStatus CbmTrdClusterFinder::Init() ...@@ -84,30 +84,18 @@ InitStatus CbmTrdClusterFinder::Init()
CbmDigiManager::Instance()->Init(); CbmDigiManager::Instance()->Init();
if (!CbmDigiManager::Instance()->IsPresent(ECbmModuleId::kTrd)) LOG(fatal) << GetName() << "Missing Trd digi branch."; if (!CbmDigiManager::Instance()->IsPresent(ECbmModuleId::kTrd)) LOG(fatal) << GetName() << "Missing Trd digi branch.";
fClusters = new std::vector<CbmTrdCluster>();
FairRootManager* ioman = FairRootManager::Instance(); FairRootManager* ioman = FairRootManager::Instance();
fClusters = new std::vector<CbmTrdCluster>();
ioman->RegisterAny("TrdCluster", fClusters, true); ioman->RegisterAny("TrdCluster", fClusters, true);
// // Get the full geometry information of the detector gas layers and store for (auto entry : fDigiPar->GetModuleMap()) {
// // them with the CbmTrdModuleRec. This information can then be used for const auto moduleId = entry.first;
// // transformation calculations
// std::map<Int_t, TGeoPhysicalNode*> moduleMap = fGeoHandler->FillModuleMap();
//
// Int_t nrModules = fDigiPar->GetNrOfModules();
// Int_t nrNodes = moduleMap.size();
// if (nrModules != nrNodes) LOG(fatal) << "Geometry and parameter files have different number of modules.";
// for (Int_t loop=0; loop< nrModules; ++loop) {
// Int_t address = fDigiPar->GetModuleId(loop);
// std::map<Int_t, TGeoPhysicalNode*>::iterator it = moduleMap.find(address);
// if ( it == moduleMap.end() ) {
// LOG(fatal) << "Expected module with address " << address << " wasn't found in the map with TGeoNode information.";
// }
// AddModule(address, it->second);
// }
// // new call needed when parameters are initialized from ROOT file // Get ASIC parameters for this module
// fDigiPar->Initialize(); CbmTrdParModAsic* setDet = static_cast<CbmTrdParModAsic*>(fAsicPar->GetModulePar(moduleId));
if (!setDet) continue;
AddModule(moduleId, setDet->GetAsicType());
}
LOG(info) << "================ TRD Cluster Finder ==============="; LOG(info) << "================ TRD Cluster Finder ===============";
LOG(info) << " Free streaming : " << (IsTimeBased() ? "yes" : "no"); LOG(info) << " Free streaming : " << (IsTimeBased() ? "yes" : "no");
...@@ -142,23 +130,21 @@ void CbmTrdClusterFinder::Exec(Option_t* /*option*/) ...@@ -142,23 +130,21 @@ void CbmTrdClusterFinder::Exec(Option_t* /*option*/)
TStopwatch timerTs; TStopwatch timerTs;
timerTs.Start(); timerTs.Start();
UInt_t nDigis = static_cast<UInt_t>(std::abs(CbmDigiManager::Instance()->GetNofDigis(ECbmModuleId::kTrd))); UInt_t nDigis = static_cast<UInt_t>(std::abs(CbmDigiManager::Instance()->GetNofDigis(ECbmModuleId::kTrd)));
CbmTrdModuleRec* mod = nullptr;
for (size_t idigi(0); idigi < nDigis; idigi++) { for (size_t idigi(0); idigi < nDigis; idigi++) {
const CbmTrdDigi* digi = CbmDigiManager::Instance()->Get<CbmTrdDigi>(idigi); const CbmTrdDigi* digi = CbmDigiManager::Instance()->Get<CbmTrdDigi>(idigi);
auto imod = fModules.find(digi->GetAddressModule()); auto imod = fModules.find(digi->GetAddressModule());
if (imod == fModules.end()) { if (imod == fModules.end()) {
mod = AddModule(digi->GetAddressModule(), digi->GetType()); LOG(error) << "CbmTrdClusterFinder: Digi with unknown module ID.";
} continue;
else {
mod = imod->second;
} }
CbmTrdModuleRec* mod = imod->second;
mod->AddDigi(digi, idigi); mod->AddDigi(digi, idigi);
} }
for (auto imod = fModules.begin(); imod != fModules.end(); imod++) { for (auto imod = fModules.begin(); imod != fModules.end(); imod++) {
mod = imod->second; CbmTrdModuleRec* mod = imod->second;
fNrClusters += mod->FindClusters(); fNrClusters += mod->FindClusters();
AddClusters(mod->GetClusters()); AddClusters(mod->GetClusters());
imod->second->Clear("cls"); imod->second->Clear("cls");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment