File tree Expand file tree Collapse file tree 3 files changed +28
-19
lines changed
Expand file tree Collapse file tree 3 files changed +28
-19
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 : GetRunSim ().RangeAllSensitiveVolumes ()) {
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+ GetRunSim ().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
@@ -431,3 +432,24 @@ void FairRunSim::ls(Option_t* option) const
431432}
432433
433434TMCThreadLocal FairRunSim* FairRunSim::fginstance = nullptr ;
435+
436+ void FairRunSim::UpdateSensitiveVolumesForModule (FairModule& mod)
437+ {
438+ TString copysign = " #" ;
439+ for (auto aVol : fAllSensitiveVolumes ) {
440+ if (aVol->getModId () != mod.GetModId ()) {
441+ continue ;
442+ }
443+ TString cutName{aVol->GetName ()};
444+ Ssiz_t pos = cutName.Index (copysign, 1 );
445+ if (pos > 1 ) {
446+ cutName.Resize (pos);
447+ }
448+ Int_t mcid = TVirtualMC::GetMC ()->VolId (cutName.Data ());
449+ aVol->setMCid (mcid);
450+ FairGeoNode* node = aVol->getGeoNode ();
451+ if (node) {
452+ node->setMCid (mcid);
453+ }
454+ }
455+ }
Original file line number Diff line number Diff line change @@ -234,6 +234,11 @@ class FairRunSim : public FairRun
234234 */
235235 auto const & RangeAllSensitiveVolumes () const { return fAllSensitiveVolumes ; }
236236
237+ /* *
238+ * \brief Internal helper for FairDetector
239+ */
240+ void UpdateSensitiveVolumesForModule (FairModule& mod);
241+
237242 private:
238243 FairRunSim (const FairRunSim& M);
239244 FairRunSim& operator =(const FairRunSim&) { return *this ; }
You can’t perform that action at this time.
0 commit comments