From f7620c47179e8db91dba4b1e04792a21aee3324e Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Wed, 18 Jan 2023 16:30:36 +0100 Subject: [PATCH] Cleanup dependencies in CbmMvdSensor Remove function SetProduceNoise from CbmMvdSensor and CbmMvdDetector. The function from the plugin is now called directly from the digitizer. Exchange some casts to the final taks by using the base class instead. --- core/detectors/mvd/CbmMvdDetector.cxx | 11 ------ core/detectors/mvd/CbmMvdDetector.h | 2 - core/detectors/mvd/CbmMvdSensor.cxx | 56 ++++----------------------- core/detectors/mvd/CbmMvdSensor.h | 3 -- sim/detectors/mvd/CbmMvdDigitizer.cxx | 1 + 5 files changed, 9 insertions(+), 64 deletions(-) diff --git a/core/detectors/mvd/CbmMvdDetector.cxx b/core/detectors/mvd/CbmMvdDetector.cxx index b99d53ee6b..c4cea769a7 100644 --- a/core/detectors/mvd/CbmMvdDetector.cxx +++ b/core/detectors/mvd/CbmMvdDetector.cxx @@ -311,17 +311,6 @@ void CbmMvdDetector::ShowDebugHistos() } //----------------------------------------------------------------------- -//----------------------------------------------------------------------- -void CbmMvdDetector::SetProduceNoise() -{ - Int_t nSensors = fSensorArray->GetEntriesFast(); - CbmMvdSensor* sensor; - - for (Int_t j = 0; j < nSensors; j++) { - sensor = (CbmMvdSensor*) fSensorArray->At(j); - sensor->SetProduceNoise(); - } -} //----------------------------------------------------------------------- void CbmMvdDetector::SendInputToSensorPlugin(Int_t detectorid, Int_t nPlugin, TObject* input) { diff --git a/core/detectors/mvd/CbmMvdDetector.h b/core/detectors/mvd/CbmMvdDetector.h index 7e4dc3fb57..89fc571f16 100644 --- a/core/detectors/mvd/CbmMvdDetector.h +++ b/core/detectors/mvd/CbmMvdDetector.h @@ -115,8 +115,6 @@ public: CbmMvdSensor* GetSensor(UInt_t nSensor) { return (CbmMvdSensor*) fSensorArray->At(nSensor); }; void PrintParameter() { fParameter->Print(); }; - void SetProduceNoise(); - static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; }; void SetSensorArrayFilled(Bool_t value = kTRUE) {fSensorArrayFilled=value;} diff --git a/core/detectors/mvd/CbmMvdSensor.cxx b/core/detectors/mvd/CbmMvdSensor.cxx index ae0f732ffc..bd06febbc9 100644 --- a/core/detectors/mvd/CbmMvdSensor.cxx +++ b/core/detectors/mvd/CbmMvdSensor.cxx @@ -11,18 +11,8 @@ //---Plugins #include "CbmMvdSensorPlugin.h" -#include "CbmMvdSensorTask.h" #include "CbmMvdSensorBuffer.h" -//#include "plugins/buffers/CbmMvdSensorFrameBuffer.h" // -> Not used -//#include "plugins/buffers/CbmMvdSensorTrackingBuffer.h" // -> Not used -//#include "plugins/tasks/CbmMvdSensorClusterfinderTask.h" //not needed khun - -#include "plugins/tasks/CbmMvdSensorDigiToHitTask.h" -//#include "plugins/tasks/CbmMvdSensorDigitizerTBTask.h" -#include "plugins/tasks/CbmMvdSensorDigitizerTask.h" -//#include "plugins/tasks/CbmMvdSensorFindHitTask.h" -#include "plugins/tasks/CbmMvdSensorHitfinderTask.h" //not needed khun -//---Plugins +#include "plugins/tasks/CbmMvdSensorTask.h" /// includes from ROOT #include "TGeoManager.h" @@ -281,33 +271,6 @@ void CbmMvdSensor::ShowDebugHistos() } // ------------------------------------------------------------------------- -// ------------------------------------------------------------------------- -void CbmMvdSensor::SetProduceNoise() -{ - CbmMvdSensorPlugin* pluginFirst; - // CbmMvdSensorFrameBuffer* framebuffer; - CbmMvdSensorDigitizerTask* digitask; - - pluginFirst = (CbmMvdSensorPlugin*) fPluginArray->At(0); - if (pluginFirst->GetPluginType() == buffer) { return; } - else if (pluginFirst->GetPluginType() == task) { - TString digitizername = "CbmMvdSensorDigitizerTask"; - - if (pluginFirst->ClassName() == digitizername) { - digitask = (CbmMvdSensorDigitizerTask*) fPluginArray->At(0); - digitask->SetProduceNoise(); - } - - else { - LOG(fatal) << "Invalid input typ"; - } - } - else { - cout << endl << "ERROR!! undefind plugin!" << endl; - } -} -// ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- void CbmMvdSensor::SendInputToPlugin(Int_t nPlugin, TObject* input) @@ -317,9 +280,6 @@ void CbmMvdSensor::SendInputToPlugin(Int_t nPlugin, TObject* input) digitask->SetInput(input); } - - - // ------------------------------------------------------------------------- void CbmMvdSensor::ExecChain() @@ -448,20 +408,20 @@ TClonesArray* CbmMvdSensor::GetOutputArray(Int_t nPlugin) const if (nPlugin == fHitPlugin) GetOutputBuffer(); else if (nPlugin == fDigiPlugin) { - CbmMvdSensorDigitizerTask* digiplugin = (CbmMvdSensorDigitizerTask*) fPluginArray->At(nPlugin); - Int_t ArrayLength = digiplugin->GetOutputArray()->GetEntriesFast() - 1; + CbmMvdSensorTask* plugin = static_cast<CbmMvdSensorTask*>(fPluginArray->At(nPlugin)); + Int_t ArrayLength = plugin->GetOutputArray()->GetEntriesFast() - 1; if (ArrayLength >= 0) { - foutputDigis->AbsorbObjects(digiplugin->GetOutputArray()); - foutputDigiMatch->AbsorbObjects(digiplugin->GetMatchArray()); + foutputDigis->AbsorbObjects(plugin->GetOutputArray()); + foutputDigiMatch->AbsorbObjects(plugin->GetMatchArray()); //cout << endl << "got digis " << foutputDigis->GetEntriesFast() << " and matches " << foutputDigiMatch->GetEntriesFast() << endl; } return (foutputDigis); } else if (nPlugin == fClusterPlugin) //khun not needed { - CbmMvdSensorClusterfinderTask* clusterplugin = (CbmMvdSensorClusterfinderTask*) fPluginArray->At(nPlugin); - Int_t ArrayLength = clusterplugin->GetOutputArray()->GetEntriesFast() - 1; - if (ArrayLength >= 0) foutputCluster->AbsorbObjects(clusterplugin->GetOutputArray(), 0, ArrayLength); + CbmMvdSensorTask* plugin = static_cast<CbmMvdSensorTask*>(fPluginArray->At(nPlugin)); + Int_t ArrayLength = plugin->GetOutputArray()->GetEntriesFast() - 1; + if (ArrayLength >= 0) foutputCluster->AbsorbObjects(plugin->GetOutputArray(), 0, ArrayLength); return (foutputCluster); } else { diff --git a/core/detectors/mvd/CbmMvdSensor.h b/core/detectors/mvd/CbmMvdSensor.h index 37ab20480c..244e55788e 100644 --- a/core/detectors/mvd/CbmMvdSensor.h +++ b/core/detectors/mvd/CbmMvdSensor.h @@ -142,9 +142,6 @@ public: //TClonesArray* GetOutputMatch() const; Int_t GetOutputArrayLen(Int_t nPlugin) const; - void SetProduceNoise(); - - protected: Int_t fStationNr; // Station identifier Int_t fSensorNr; // Sensor identifier diff --git a/sim/detectors/mvd/CbmMvdDigitizer.cxx b/sim/detectors/mvd/CbmMvdDigitizer.cxx index 66a9bfc4c6..a73f88411c 100644 --- a/sim/detectors/mvd/CbmMvdDigitizer.cxx +++ b/sim/detectors/mvd/CbmMvdDigitizer.cxx @@ -316,6 +316,7 @@ InitStatus CbmMvdDigitizer::Init() for (auto itr = sensorMap.begin(); itr != sensorMap.end(); itr++) { CbmMvdSensorDigitizerTask* digiTask = new CbmMvdSensorDigitizerTask(); + if (fNoiseSensors) digiTask->SetProduceNoise(); itr->second->AddPlugin(digiTask); itr->second->SetDigiPlugin(plugincount); } -- GitLab