-class FGeometryInit : public G4TransportationManager
-{
- public:
- ~FGeometryInit(); //destructor
- static FGeometryInit *GetInstance();
- inline FluggNavigator *getNavigatorForTracking();
- inline G4FieldManager * getFieldManager();
- inline void setDetConstruction(G4VUserDetectorConstruction* detector);
- inline void setDetector();
- inline void setMotherVolume();
- void createFlukaMatFile();
- void closeGeometry();
-
- void PrintHistories();
- void InitHistories();
- void DeleteHistories();
- void UpdateHistories(const G4NavigationHistory *, G4int);
- inline G4TouchableHistory * GetTouchableHistory();
- inline G4TouchableHistory * GetOldNavHist();
- inline G4TouchableHistory * GetTempNavHist();
-
- void InitHistArray();
- inline void DelHistArray();
- inline G4int * GetHistArray();
-
- void InitJrLtGeantArray();
- inline G4int * GetJrLtGeantArray();
- inline G4int GetLttcFlagGeant();
- void SetLttcFlagGeant(G4int);
- void PrintJrLtGeant();
-
- private:
- FGeometryInit(); //costructor
- G4VUserDetectorConstruction * fDetector;
- G4FieldManager * fFieldManager;
- G4TransportationManager * fTransportationManager;
- static FGeometryInit *flagInstance;
- G4VPhysicalVolume * myTopNode;
- G4GeometryManager * ptrGeoMan;
- G4int * ptrArray;
- G4TouchableHistory * ptrTouchHist;
- G4TouchableHistory * ptrOldNavHist;
- G4TouchableHistory * ptrTempNavHist;
- G4int * ptrJrLtGeant;
- G4int flagLttcGeant;
+protected:
+ void BuildRegionsMap();
+ void PrintRegionsMap(G4std::ostream& os);
+ void BuildMaterialTables();
+ FlukaMaterial* BuildFlukaMaterialFromElement(const G4Element* element,
+ G4double matDensity);
+ FlukaMaterial* BuildFlukaMaterialFromIsotope(const G4Isotope* isotope,
+ G4double matDensity);
+ FlukaCompound* BuildFlukaCompoundFromMaterial(const G4Material* material);
+ FlukaCompound* BuildFlukaCompoundFromElement(const G4Element* element,
+ G4double matDensity);
+ void PrintMaterialTables(G4std::ostream& os);
+ void PrintAssignmat(G4std::ostream& os);
+ void PrintMagneticField(G4std::ostream& os);
+
+private:
+ FGeometryInit(); //costructor
+
+private:
+ G4VUserDetectorConstruction * fDetector;
+ G4FieldManager * fFieldManager;
+ G4TransportationManager * fTransportationManager;
+ static FGeometryInit *flagInstance;
+ G4VPhysicalVolume * myTopNode;
+ G4GeometryManager * ptrGeoMan;
+ G4int * ptrArray;
+ G4TouchableHistory * ptrTouchHist;
+ G4TouchableHistory * ptrOldNavHist;
+ G4TouchableHistory * ptrTempNavHist;
+ G4int * ptrJrLtGeant;
+ G4int flagLttcGeant;
+
+ G4std::map<G4VPhysicalVolume*, int, G4std::less<G4VPhysicalVolume*> > fRegionVolumeMap;
+ G4std::map<G4Material*, FlukaMaterial*, G4std::less<G4Material*> > G4FlukaMaterialMap;
+ G4std::map<G4Material*, FlukaCompound*, G4std::less<G4Material*> > G4FlukaCompoundMap;
+ //G4int NOfMaterials;