Geant4  10.02.p03
G4VUserDetectorConstruction Class Referenceabstract

#include <G4VUserDetectorConstruction.hh>

Inherited by B01DetectorConstruction, B02DetectorConstruction, B03DetectorConstruction, B1DetectorConstruction, B1DetectorConstruction, B1DetectorConstruction, B2aDetectorConstruction, B2bDetectorConstruction, B2bDetectorConstruction, B3DetectorConstruction, B3DetectorConstruction, B4cDetectorConstruction, B4dDetectorConstruction, B4DetectorConstruction, B4DetectorConstruction, B5DetectorConstruction, BrachyDetectorConstruction, CCalDetectorConstruction, CexmcSetup, CML2WorldConstruction, Collimator100BeamLine, Collimator40BeamLine, Collimator50BeamLine, Collimator60BeamLine, Collimator70BeamLine, Collimator80BeamLine, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DicomDetectorConstruction, DMXDetectorConstruction, ElectronBenchmarkDetector, Em10DetectorConstruction, eRositaDetectorConstruction, ExErrorDetectorConstruction, ExExChDetectorConstruction, ExG4DetectorConstruction01, ExG4DetectorConstruction01, ExG4DetectorConstruction01, ExG4DetectorConstruction02, ExG4DetectorConstruction02, ExG4DetectorConstruction02, ExGflashDetectorConstruction, ExN01DetectorConstruction, ExN02DetectorConstruction, ExN03DetectorConstruction, ExN04DetectorConstruction, ExN04DetectorConstruction, ExP01DetectorConstruction, ExP02DetConstrReader, ExP02DetectorConstruction, ExTGDetectorConstruction, ExTGDetectorConstructionWithCpp, ExTGDetectorConstructionWithCuts, ExTGDetectorConstructionWithSD, ExUCNDetectorConstruction, EzDetectorConstruction, F01DetectorConstruction, F02DetectorConstruction, F03DetectorConstruction, F04DetectorConstruction, F05DetectorConstruction, F06DetectorConstruction, FCALTestbeamSetup, FFDetectorConstruction, G01DetectorConstruction, G02DetectorConstruction, G03DetectorConstruction, G04DetectorConstruction, G3toG4DetectorConstruction, G4HumanPhantomConstruction, GammaKnifeDetectorConstruction, GammaRayTelDetectorConstruction, GB01DetectorConstruction, GB02DetectorConstruction, GB03DetectorConstruction, GB04DetectorConstruction, GeometryConstruction, LaserDrivenBeamLine, LXeDetectorConstruction, MyDetectorConstruction, OpNoviceDetectorConstruction, Par01DetectorConstruction, Par02DetectorConstruction, PassiveCarbonBeamLine, PassiveProtonBeamLine, PurgMagDetectorConstruction, pyG4VUserDetectorConstruction::CB_G4VUserDetectorConstruction, QDetectorConstruction, QDetectorConstruction, RE01DetectorConstruction, RE02DetectorConstruction, RE03DetectorConstruction, RE04DetectorConstruction, RE05DetectorConstruction, RE06DetectorConstruction, read_gdml.MyDetectorConstruction, read_gdml.MyDetectorConstruction, RMC01DetectorConstruction, test.MyDetectorConstruction, test.MyDetectorConstruction, test.MyDetectorConstruction, test.MyDetectorConstruction, test.MyDetectorConstruction, test.MyDetectorConstruction, TRTDetectorConstruction, TSDetectorConstruction, UltraDetectorConstruction, WLSDetectorConstruction, XDetectorConstruction, XrayFluoDetectorConstruction, XrayFluoGeometry, XrayFluoMercuryDetectorConstruction, XrayFluoPlaneDetectorConstruction, and XrayTelDetectorConstruction.

Collaboration diagram for G4VUserDetectorConstruction:

Public Member Functions

 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()=0
 
virtual void ConstructSDandField ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Protected Member Functions

void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Private Attributes

std::vector< G4VUserParallelWorld * > parallelWorld
 

Detailed Description

Definition at line 50 of file G4VUserDetectorConstruction.hh.

Constructor & Destructor Documentation

◆ G4VUserDetectorConstruction()

G4VUserDetectorConstruction::G4VUserDetectorConstruction ( )

Definition at line 41 of file G4VUserDetectorConstruction.cc.

42 {;}

◆ ~G4VUserDetectorConstruction()

G4VUserDetectorConstruction::~G4VUserDetectorConstruction ( )
virtual

Definition at line 44 of file G4VUserDetectorConstruction.cc.

45 {;}

Member Function Documentation

◆ CloneF()

void G4VUserDetectorConstruction::CloneF ( )
virtual

Definition at line 108 of file G4VUserDetectorConstruction.cc.

109 {
110  typedef std::map<G4FieldManager*,G4FieldManager*> FMtoFMmap;
111  typedef std::pair<G4FieldManager*,G4FieldManager*> FMpair;
112  FMtoFMmap masterToWorker;
114  assert( logVolStore != NULL );
115  for ( G4LogicalVolumeStore::const_iterator it = logVolStore->begin() ; it != logVolStore->end() ; ++it )
116  {
117  G4LogicalVolume *g4LogicalVolume = *it;
118  //Use shadow of master to get instance of FM
119  G4FieldManager* masterFM = 0;//g4LogicalVolume->fFieldManager;
120  G4FieldManager* clonedFM = 0;
121  if ( masterFM )
122  {
123  FMtoFMmap::iterator fmFound = masterToWorker.find(masterFM);
124  if ( fmFound == masterToWorker.end() )
125  {
126  //First time we see this SD, let's clone and remember...
127  try {
128  std::pair<FMtoFMmap::iterator,bool> insertedEl = masterToWorker.insert( FMpair(masterFM, masterFM->Clone()) );
129  clonedFM = (insertedEl.first)->second;
130  }
131  catch (...)
132  {
134  msg << "Cloning of G4FieldManager failed."
135  << " But derived class does not implement cloning. Cannot continue.";
136  G4Exception("G4VUserDetectorConstruction::CloneSD", "Run0053", FatalException,msg);
137 
138  }
139  }
140  else
141  {
142  // We have already seen this SD attached to a fifferent LogicalVolume, let's re-use previous clone
143  clonedFM = (*fmFound).second;
144  }
145  }// masterFM != 0
146  //Note that we do not push FM to doughters (false argument), however, since we area looping on all
147  //logical volumes and we implemented the "trick" of the map master<->cloned the final
148  //effect is the same as using here the correct boolean flag: log-volumes that originally were sharing
149  //the same FM they will have cloned ones
150  g4LogicalVolume->SetFieldManager(clonedFM, false);
151  }
152 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
static G4LogicalVolumeStore * GetInstance()
static const double second
Definition: G4SIunits.hh:156
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
virtual G4FieldManager * Clone() const
Here is the call graph for this function:

◆ CloneSD()

void G4VUserDetectorConstruction::CloneSD ( )
virtual

Definition at line 154 of file G4VUserDetectorConstruction.cc.

155 {
156  //Loop on ALL logial volumes to search for attached SD
158  assert( logVolStore != NULL );
159 
160  typedef std::map<G4VSensitiveDetector*,G4VSensitiveDetector*> SDtoSDmap;
161  typedef std::pair<G4VSensitiveDetector*,G4VSensitiveDetector*> SDpair;
162  SDtoSDmap masterToWorker;
163 
164  for ( G4LogicalVolumeStore::const_iterator it = logVolStore->begin() ; it != logVolStore->end() ; ++it )
165  {
166  G4LogicalVolume *g4LogicalVolume = *it;
167  //Use shadow of master to get the instance of SD
168  G4VSensitiveDetector* masterSD = 0;//g4LogicalVolume->fSensitiveDetector;
169  G4VSensitiveDetector* clonedSD = 0;
170  if ( masterSD )
171  {
172  SDtoSDmap::iterator sdFound = masterToWorker.find(masterSD);
173  if ( sdFound == masterToWorker.end() )
174  {
175  //First time we see this SD, let's clone and remember...
176  try {
177  std::pair<SDtoSDmap::iterator,bool> insertedEl = masterToWorker.insert( SDpair(masterSD,masterSD->Clone()) );
178  clonedSD = (insertedEl.first)->second;
179  }
180  catch (...)
181  {
183  msg << "Cloning of G4VSensitiveDetector requested for:" << masterSD->GetName() << "\n"
184 #ifndef WIN32
185  << " (full path name: " << masterSD->GetFullPathName() << ").\n"
186 #endif
187  << " But derived class does not implement cloning. Cannot continue.";
188  G4Exception("G4VUserDetectorConstruction::CloneSD", "Run0053", FatalException,msg);
189  }
190 
191  }
192  else
193  {
194  // We have already seen this SD attached to a fifferent LogicalVolume, let's re-use previous clone
195  clonedSD = (*sdFound).second;
196 
197  }
198  }// masterSD!=0
199  g4LogicalVolume->SetSensitiveDetector(clonedSD);
200 
201  }
202 }
G4String GetFullPathName() const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
virtual G4VSensitiveDetector * Clone() const
static G4LogicalVolumeStore * GetInstance()
static const double second
Definition: G4SIunits.hh:156
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
Here is the call graph for this function:

◆ Construct()

virtual G4VPhysicalVolume* G4VUserDetectorConstruction::Construct ( )
pure virtual

Implemented in RE02DetectorConstruction, CexmcSetup, GammaRayTelDetectorConstruction, TSDetectorConstruction, Em10DetectorConstruction, CML2WorldConstruction, XrayFluoDetectorConstruction, DetectorConstruction, F01DetectorConstruction, F02DetectorConstruction, F03DetectorConstruction, XrayFluoMercuryDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, XrayFluoPlaneDetectorConstruction, DetectorConstruction, ExN03DetectorConstruction, PurgMagDetectorConstruction, DMXDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, UltraDetectorConstruction, DetectorConstruction, ExErrorDetectorConstruction, DetectorConstruction, WLSDetectorConstruction, Collimator100BeamLine, Collimator40BeamLine, Collimator50BeamLine, Collimator60BeamLine, Collimator70BeamLine, Collimator80BeamLine, XrayTelDetectorConstruction, DetectorConstruction, G02DetectorConstruction, LaserDrivenBeamLine, RMC01DetectorConstruction, DetectorConstruction, DicomDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, B4cDetectorConstruction, B4dDetectorConstruction, ExG4DetectorConstruction02, ExG4DetectorConstruction02, ExG4DetectorConstruction02, DetectorConstruction, DetectorConstruction, DetectorConstruction, FCALTestbeamSetup, B4DetectorConstruction, B4DetectorConstruction, F04DetectorConstruction, F06DetectorConstruction, DetectorConstruction, DetectorConstruction, DicomPartialDetectorConstruction, ExN02DetectorConstruction, Par02DetectorConstruction, G03DetectorConstruction, ExP01DetectorConstruction, ExG4DetectorConstruction01, ExG4DetectorConstruction01, F05DetectorConstruction, ExG4DetectorConstruction01, LXeDetectorConstruction, DetectorConstruction, DetectorConstruction, FFDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, XrayFluoGeometry, B5DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, RE04DetectorConstruction, BrachyDetectorConstruction, eRositaDetectorConstruction, B2aDetectorConstruction, B2bDetectorConstruction, ExUCNDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, ElectronBenchmarkDetector, B2bDetectorConstruction, DetectorConstruction, DetectorConstruction, PassiveProtonBeamLine, GB04DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, ExN01DetectorConstruction, DetectorConstruction, ExExChDetectorConstruction, DetectorConstruction, DetectorConstruction, MyDetectorConstruction, DetectorConstruction, G3toG4DetectorConstruction, B3DetectorConstruction, B3DetectorConstruction, ExGflashDetectorConstruction, TRTDetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, ExP02DetConstrReader, DetectorConstruction, RE06DetectorConstruction, GammaKnifeDetectorConstruction, PassiveCarbonBeamLine, G4HumanPhantomConstruction, B01DetectorConstruction, B02DetectorConstruction, GB01DetectorConstruction, GB02DetectorConstruction, GB03DetectorConstruction, GeometryConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, G01DetectorConstruction, EzDetectorConstruction, QDetectorConstruction, QDetectorConstruction, ExN04DetectorConstruction, ExP02DetectorConstruction, RE01DetectorConstruction, RE05DetectorConstruction, B1DetectorConstruction, B1DetectorConstruction, B03DetectorConstruction, G04DetectorConstruction, ExTGDetectorConstruction, ExTGDetectorConstructionWithCpp, ExTGDetectorConstructionWithCuts, ExTGDetectorConstructionWithSD, RE03DetectorConstruction, B1DetectorConstruction, XDetectorConstruction, pyG4VUserDetectorConstruction::CB_G4VUserDetectorConstruction, DetectorConstruction, ExN04DetectorConstruction, OpNoviceDetectorConstruction, Par01DetectorConstruction, CCalDetectorConstruction, DetectorConstruction, DetectorConstruction, and DetectorConstruction.

Here is the caller graph for this function:

◆ ConstructParallelGeometries()

G4int G4VUserDetectorConstruction::ConstructParallelGeometries ( )

Definition at line 64 of file G4VUserDetectorConstruction.cc.

65 {
66  G4int nP = 0;
67  std::vector<G4VUserParallelWorld*>::iterator pwItr;
68  for(pwItr=parallelWorld.begin();pwItr!=parallelWorld.end();pwItr++)
69  {
70  (*pwItr)->Construct();
71  nP++;
72  }
73  return nP;
74 }
int G4int
Definition: G4Types.hh:78
std::vector< G4VUserParallelWorld * > parallelWorld
Here is the caller graph for this function:

◆ ConstructParallelSD()

void G4VUserDetectorConstruction::ConstructParallelSD ( )

Definition at line 76 of file G4VUserDetectorConstruction.cc.

77 {
78  std::vector<G4VUserParallelWorld*>::iterator pwItr;
79  for(pwItr=parallelWorld.begin();pwItr!=parallelWorld.end();pwItr++)
80  { (*pwItr)->ConstructSD(); }
81 }
std::vector< G4VUserParallelWorld * > parallelWorld
Here is the caller graph for this function:

◆ ConstructSDandField()

void G4VUserDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented in RE02DetectorConstruction, TSDetectorConstruction, GammaRayTelDetectorConstruction, DicomDetectorConstruction, XrayFluoDetectorConstruction, F01DetectorConstruction, F02DetectorConstruction, XrayFluoMercuryDetectorConstruction, F03DetectorConstruction, DetectorConstruction, XrayFluoPlaneDetectorConstruction, DetectorConstruction, PurgMagDetectorConstruction, DMXDetectorConstruction, DetectorConstruction, WLSDetectorConstruction, UltraDetectorConstruction, DetectorConstruction, LaserDrivenBeamLine, DetectorConstruction, B01DetectorConstruction, DetectorConstruction, DetectorConstruction, B4cDetectorConstruction, B4dDetectorConstruction, F04DetectorConstruction, Par02DetectorConstruction, FCALTestbeamSetup, B4DetectorConstruction, B4DetectorConstruction, F06DetectorConstruction, F05DetectorConstruction, LXeDetectorConstruction, DetectorConstruction, ExExChDetectorConstruction, ElectronBenchmarkDetector, B5DetectorConstruction, DetectorConstruction, B2aDetectorConstruction, B2bDetectorConstruction, ExUCNDetectorConstruction, B2bDetectorConstruction, G4HumanPhantomConstruction, GB04DetectorConstruction, DetectorConstruction, DetectorConstruction, DetectorConstruction, B3DetectorConstruction, B3DetectorConstruction, ExGflashDetectorConstruction, RE06DetectorConstruction, GB01DetectorConstruction, GB02DetectorConstruction, GB03DetectorConstruction, RE01DetectorConstruction, RE05DetectorConstruction, G04DetectorConstruction, ExTGDetectorConstructionWithSD, RE03DetectorConstruction, DetectorConstruction, XDetectorConstruction, Par01DetectorConstruction, DetectorConstruction, DetectorConstruction, and DetectorConstruction.

Definition at line 94 of file G4VUserDetectorConstruction.cc.

95 {
96 // G4RunManager::RMType rmtype = G4RunManager::GetRunManager()->GetRunManagerType();
97 // if(rmtype != G4RunManager::sequentialRM)
98 // {
99 // G4cout
100 // << "User-derived detector construction class does not implement \n"
101 // << "ConstructSDandFiled method: i.e. workers will not have SD and fields!\n"
102 // << "The user can safely ignore this message if (s)he has no sensitive\n"
103 // << "detector or field in her/his application." << G4endl;
104 // }
105 }
Here is the caller graph for this function:

◆ GetNumberOfParallelWorld()

G4int G4VUserDetectorConstruction::GetNumberOfParallelWorld ( ) const

Definition at line 83 of file G4VUserDetectorConstruction.cc.

84 { return parallelWorld.size(); }
std::vector< G4VUserParallelWorld * > parallelWorld
Here is the caller graph for this function:

◆ GetParallelWorld()

G4VUserParallelWorld * G4VUserDetectorConstruction::GetParallelWorld ( G4int  i) const

Definition at line 86 of file G4VUserDetectorConstruction.cc.

87 {
88  if(i<0||i>=GetNumberOfParallelWorld()) return 0;
89  return parallelWorld[i];
90 }
std::vector< G4VUserParallelWorld * > parallelWorld
Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterParallelWorld()

void G4VUserDetectorConstruction::RegisterParallelWorld ( G4VUserParallelWorld aPW)

Definition at line 47 of file G4VUserDetectorConstruction.cc.

48 {
49  std::vector<G4VUserParallelWorld*>::iterator pwItr;
50  for(pwItr=parallelWorld.begin();pwItr!=parallelWorld.end();pwItr++)
51  {
52  if((*pwItr)->GetName()==aPW->GetName())
53  {
54  G4String eM = "A parallel world <";
55  eM += aPW->GetName();
56  eM += "> is already registered to the user detector construction.";
57  G4Exception("G4VUserDetectorConstruction::RegisterParallelWorld",
58  "Run0051",FatalErrorInArgument,eM);
59  }
60  }
61  parallelWorld.push_back(aPW);
62 }
std::vector< G4VUserParallelWorld * > parallelWorld
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetSensitiveDetector() [1/2]

void G4VUserDetectorConstruction::SetSensitiveDetector ( const G4String logVolName,
G4VSensitiveDetector aSD,
G4bool  multi = false 
)
protected

Definition at line 205 of file G4VUserDetectorConstruction.cc.

206 {
207  G4bool found = false;
209  for(G4LogicalVolumeStore::iterator pos=store->begin(); pos!=store->end(); pos++)
210  {
211  if((*pos)->GetName()==logVolName)
212  {
213  if(found && !multi)
214  {
215  G4String eM = "More than one logical volumes of the name <";
216  eM += (*pos)->GetName();
217  eM += "> are found and thus the sensitive detector <";
218  eM += aSD->GetName();
219  eM += "> cannot be uniquely assigned.";
220  G4Exception("G4VUserDetectorConstruction::SetSensitiveDetector",
221  "Run0052",FatalErrorInArgument,eM);
222  }
223  found = true;
225  }
226  }
227  if(!found)
228  {
229  G4String eM2 = "No logical volume of the name <";
230  eM2 += logVolName;
231  eM2 += "> is found. The specified sensitive detector <";
232  eM2 += aSD->GetName();
233  eM2 += "> couldn't be assigned to any volume.";
234  G4Exception("G4VUserDetectorConstruction::SetSensitiveDetector",
235  "Run0053",FatalErrorInArgument,eM2);
236  }
237 }
bool G4bool
Definition: G4Types.hh:79
static G4LogicalVolumeStore * GetInstance()
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static const G4double pos
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetSensitiveDetector() [2/2]

void G4VUserDetectorConstruction::SetSensitiveDetector ( G4LogicalVolume logVol,
G4VSensitiveDetector aSD 
)
protected

Definition at line 240 of file G4VUserDetectorConstruction.cc.

241 {
242  assert(logVol!=nullptr&&aSD!=nullptr);
243 
245 
246  //New Logic: allow for "multiple" SDs being attached to a single LV.
247  //To do that we use a special proxy SD called G4MultiSensitiveDetector
248 
249  //Get existing SD if already set and check if it is of the special type
250  G4VSensitiveDetector* originalSD = logVol->GetSensitiveDetector();
251  if ( originalSD == nullptr ) {
252  logVol->SetSensitiveDetector(aSD);
253  } else {
254  G4MultiSensitiveDetector* msd = dynamic_cast<G4MultiSensitiveDetector*>(originalSD);
255  if ( msd != nullptr ) {
256  msd->AddSD(aSD);
257  } else {
258  const G4String msdname = "/MultiSD_"+logVol->GetName();
259  msd = new G4MultiSensitiveDetector(msdname);
260  //We need to register the proxy to have correct handling of IDs
262  msd->AddSD(originalSD);
263  msd->AddSD(aSD);
264  logVol->SetSensitiveDetector(msd);
265  }
266  }
267 }
void AddSD(G4VSensitiveDetector *sd)
const G4String & GetName() const
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
G4VSensitiveDetector * GetSensitiveDetector() const
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
Here is the call graph for this function:

Member Data Documentation

◆ parallelWorld

std::vector<G4VUserParallelWorld*> G4VUserDetectorConstruction::parallelWorld
private

Definition at line 74 of file G4VUserDetectorConstruction.hh.


The documentation for this class was generated from the following files: