74 fLogicalVolumeVector.clear();
88 G4cout <<
" B02ImportanceDetectorConstruction:: ghostWorldName = "
91 fLogicalVolumeVector.push_back(worldLogical);
109 spanningAngleShield);
115 fLogicalVolumeVector.push_back(aShield_log_imp);
122 for (i=1; i<=18; i++) {
128 G4double pos_z = startz + (i-1) * (2*heightShield);
146 innerRadiusShield = 0*
cm;
148 outerRadiusShield = 100*
cm;
151 startAngleShield = 0*
deg;
152 spanningAngleShield = 360*
deg;
159 spanningAngleShield);
164 fLogicalVolumeVector.push_back(aRest_log);
206 std::ostringstream os;
226 G4cout <<
"B02ImportanceDetectorConstruction::GetGeometryCell: " <<
G4endl
227 <<
" couldn't get G4GeometryCell" <<
G4endl;
273 G4String concreteSDname =
"ConcreteSD";
290 for (std::vector<G4LogicalVolume *>::iterator it =
291 fLogicalVolumeVector.begin();
292 it != fLogicalVolumeVector.end(); it++){
340 G4cout <<
" B02ImportanceDetectorConstruction:: Creating Importance Store "
342 if (!fPVolumeStore.
Size())
344 G4Exception(
"B02ImportanceDetectorConstruction::CreateImportanceStore"
346 ,
"no physical volumes created yet!");
363 for (cell=1; cell<=18; cell++) {
365 G4cout <<
" adding cell: " << cell
368 imp = std::pow(2.0,cell-1);
370 G4cout <<
"Going to assign importance: " << imp <<
", to volume: "
383 imp = std::pow(2.0,17);
395 G4cout <<
" B02ImportanceDetectorConstruction:: Creating Importance Store "
397 if (!fPVolumeStore.
Size())
399 G4Exception(
"B02ImportanceDetectorConstruction::CreateWeightWindowStore"
401 ,
"no physical volumes created yet!");
412 std::set<G4double, std::less<G4double> > enBounds;
413 enBounds.insert(1 *
GeV);
418 std::vector<G4double> lowerWeights;
420 lowerWeights.push_back(1);
425 for (cell=1; cell<=18; cell++) {
427 G4cout <<
" adding cell: " << cell
431 lowerWeight = 1./std::pow(2., n++);
432 G4cout <<
"Going to assign lower weight: " << lowerWeight
435 lowerWeights.clear();
436 lowerWeights.push_back(lowerWeight);
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
virtual ~B02ImportanceDetectorConstruction()
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * GetWorld()
void AddLowerWeights(const G4GeometryCell &gCell, const std::vector< G4double > &lowerWeights)
B02ImportanceDetectorConstruction(G4String worldName)
G4GeometryCell GetGeometryCell(G4int i)
G4String GetCellName(G4int i)
void Weighted(G4bool flg=true)
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void Weighted(G4bool flg=true)
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
static constexpr double cm
G4int GetReplicaNumber() const
const G4VPhysicalVolume * GetPVolume(const G4String &name) const
void AddImportanceGeometryCell(G4double importance, const G4GeometryCell &gCell)
void SetFilter(G4VSDFilter *value)
static G4WeightWindowStore * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void AddNewDetector(G4VSensitiveDetector *aSD)
const G4VPhysicalVolume & GetPhysicalVolume() const
G4String GetPNames() const
static G4IStore * GetInstance()
G4LogicalVolume * GetLogicalVolume() const
G4VWeightWindowStore * CreateWeightWindowStore()
G4VPhysicalVolume * GetWorldVolume()
static G4SDManager * GetSDMpointer()
void MultiplyKineticEnergy(G4bool flg=true)
void SetGeneralUpperEnergyBounds(const std::set< G4double, std::less< G4double > > &enBounds)
static constexpr double GeV
G4VIStore * CreateImportanceStore()
G4VPhysicalVolume & GetWorldVolumeAddress() const
static constexpr double deg
const G4VPhysicalVolume & GetPhysicalVolumeByName(const G4String &name) const
void DivideByVelocity(G4bool flg=true)
virtual void ConstructSD()
Definition of the B02ImportanceDetectorConstruction class.
void AddPVolume(const G4GeometryCell &cell)
G4String ListPhysNamesAsG4String()