File tree Expand file tree Collapse file tree 3 files changed +28
-20
lines changed
Expand file tree Collapse file tree 3 files changed +28
-20
lines changed Original file line number Diff line number Diff line change @@ -94,25 +94,7 @@ void FairDetector::Initialize()
9494 DefineSensitiveVolumes ();
9595 }
9696
97- Int_t fMCid ;
98- FairGeoNode* fN ;
99- TString cutName;
100- TString copysign = " #" ;
101- for (auto aVol : FairRunSim::Instance ()->fAllSensitiveVolumes ) {
102- cutName = aVol->GetName ();
103- Ssiz_t pos = cutName.Index (copysign, 1 );
104- if (pos > 1 ) {
105- cutName.Resize (pos);
106- }
107- if (aVol->getModId () == GetModId ()) {
108- fMCid = TVirtualMC::GetMC ()->VolId (cutName.Data ());
109- aVol->setMCid (fMCid );
110- fN = aVol->getGeoNode ();
111- if (fN ) {
112- fN ->setMCid (fMCid );
113- }
114- }
115- }
97+ FairRunSim::Instance ()->UpdateSensitiveVolumesForModule (*this );
11698
11799 // Initialize cached pointer to MC (on master in sequential mode)
118100 fMC = TVirtualMC::GetMC ();
Original file line number Diff line number Diff line change 2828#include " FairRunIdGenerator.h" // for FairRunIdGenerator
2929#include " FairRuntimeDb.h" // for FairRuntimeDb
3030#include " FairTask.h" // for FairTask
31+ #include " FairVolume.h"
3132
3233#include < TCollection.h> // for TIter
3334#include < TGeoManager.h> // for gGeoManager
@@ -422,3 +423,24 @@ void FairRunSim::ls(Option_t* option) const
422423}
423424
424425TMCThreadLocal FairRunSim* FairRunSim::fginstance = nullptr ;
426+
427+ void FairRunSim::UpdateSensitiveVolumesForModule (FairModule& mod)
428+ {
429+ TString copysign = " #" ;
430+ for (auto aVol : fAllSensitiveVolumes ) {
431+ if (aVol->getModId () != mod.GetModId ()) {
432+ continue ;
433+ }
434+ TString cutName{aVol->GetName ()};
435+ Ssiz_t pos = cutName.Index (copysign, 1 );
436+ if (pos > 1 ) {
437+ cutName.Resize (pos);
438+ }
439+ Int_t mcid = TVirtualMC::GetMC ()->VolId (cutName.Data ());
440+ aVol->setMCid (mcid);
441+ FairGeoNode* node = aVol->getGeoNode ();
442+ if (node) {
443+ node->setMCid (mcid);
444+ }
445+ }
446+ }
Original file line number Diff line number Diff line change @@ -41,7 +41,6 @@ class FairVolume;
4141class FairRunSim : public FairRun
4242{
4343 friend class FairModule ;
44- friend class FairDetector ;
4544 friend class FairMCApplication ;
4645
4746 public:
@@ -222,6 +221,11 @@ class FairRunSim : public FairRun
222221
223222 void ls (Option_t* option = " " ) const override ;
224223
224+ /* *
225+ * \brief Internal helper for FairDetector
226+ */
227+ void UpdateSensitiveVolumesForModule (FairModule& mod);
228+
225229 private:
226230 FairRunSim (const FairRunSim& M);
227231 FairRunSim& operator =(const FairRunSim&) { return *this ; }
You can’t perform that action at this time.
0 commit comments