123 for ( std::vector< G4LogicalVolume * >::const_iterator
124 lvIter( lvs->begin() ); lvIter != lvs->end(); ++lvIter )
131 for ( G4GDMLAuxListType::const_iterator pair( auxInfo.begin() );
132 pair != auxInfo.end(); ++pair )
135 G4String detectorName(
"uninitialized" );
138 if ( pair->type ==
"EnergyDepositDetector" )
142 if ( pair->value ==
"MonitorRole" )
150 if ( pair->value ==
"VetoCounterRole" )
159 if ( pair->value ==
"CalorimeterRole" )
171 detectorName <<
"' in volume '" << volumeName <<
175 if ( pair->type ==
"TrackPointsDetector" )
179 if ( pair->value ==
"MonitorRole" )
187 if ( pair->value ==
"VetoCounterRole" )
196 if ( pair->value ==
"CalorimeterRole" )
205 if ( pair->value ==
"TargetRole" )
216 detectorName <<
"' in volume '" << volumeName <<
222 scorer->SetFilter( filter );
226 if ( pair->type ==
"SensitiveRegion" )
230 if ( pair->value ==
"CalorimeterRegion" )
247 GetUserPhysicsList() );
249 defaultProductionCut =
250 physicsList->GetDefaultCutValue();
251 cuts->SetProductionCut( defaultProductionCut );
252 region->SetProductionCuts( cuts );
255 region->AddRootLogicalVolume( *lvIter );
260 "volume '" << volumeName <<
"' registered" <<
264 if ( pair->type ==
"SpecialVolume" )
268 if ( pair->value ==
"Monitor" )
274 if ( pair->value ==
"VetoCounter" )
280 if ( pair->value ==
"Calorimeter" )
288 if ( pair->value ==
"Target" )
304 if ( ! detector[ curDetectorRole ] )
306 detector[ curDetectorRole ] =
312 scorer->InitializeMessenger();
317 ( *lvIter )->SetSensitiveDetector(
318 detector[ curDetectorRole ] );
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
G4GDMLAuxListType GetVolumeAuxiliaryInformation(G4LogicalVolume *lvol) const
const G4String CexmcDetectorTypeName[CexmcNumberOfDetectorTypes]
G4bool calorimeterGeometryDataInitialized
static G4RegionStore * GetInstance()
G4GLOB_DLL std::ostream G4cout
G4LogicalVolume * calorimeterVolume
static G4LogicalVolumeStore * GetInstance()
void ReadCalorimeterGeometryData(const G4LogicalVolume *lVolume)
const G4String CexmcDetectorRoleName[CexmcNumberOfDetectorRoles]
G4LogicalVolume * monitorVolume
void AddNewDetector(G4VSensitiveDetector *aSD)
static void AssertAndAsignDetectorRole(CexmcDetectorRole &detectorRole, CexmcDetectorRole value)
static G4RunManager * GetRunManager()
const G4String CexmcCalorimeterRegionName("Calorimeter")
std::vector< G4GDMLAuxStructType > G4GDMLAuxListType
G4bool calorimeterRegionInitialized
static G4SDManager * GetSDMpointer()
G4LogicalVolume * targetVolume
G4LogicalVolume * vetoCounterVolume