Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // G4PVDivisionFactory 26 // G4PVDivisionFactory 27 // 27 // 28 // Class description: 28 // Class description: 29 // 29 // 30 // Implementation of the interfaces for creati 30 // Implementation of the interfaces for creating volume divisions 31 // (defined in G4VPVDivisionFactory) for G4PVD 31 // (defined in G4VPVDivisionFactory) for G4PVDivision type. 32 32 33 // Author: Ivana Hrivnacova, 04.05.2004 (Ivan 33 // Author: Ivana Hrivnacova, 04.05.2004 (Ivana.Hrivnacova@cern.ch) 34 // ------------------------------------------- 34 // ------------------------------------------------------------------------ 35 #ifndef G4PVDIVISION_FACTORY_HH 35 #ifndef G4PVDIVISION_FACTORY_HH 36 #define G4PVDIVISION_FACTORY_HH 36 #define G4PVDIVISION_FACTORY_HH 37 37 38 #include "geomdefs.hh" 38 #include "geomdefs.hh" 39 #include "G4VPVDivisionFactory.hh" 39 #include "G4VPVDivisionFactory.hh" 40 40 41 class G4LogicalVolume; 41 class G4LogicalVolume; 42 42 43 class G4PVDivisionFactory : public G4VPVDivisi 43 class G4PVDivisionFactory : public G4VPVDivisionFactory 44 { 44 { 45 public: << 45 public: // with description 46 46 47 ~G4PVDivisionFactory() override = default; << 47 ~G4PVDivisionFactory() override; 48 48 49 G4VPhysicalVolume* CreatePVDivision( 49 G4VPhysicalVolume* CreatePVDivision( 50 const G4String& p 50 const G4String& pName, 51 G4LogicalVo 51 G4LogicalVolume* pLogical, 52 G4LogicalVo 52 G4LogicalVolume* pMother, 53 const EAxis pAxis 53 const EAxis pAxis, 54 const G4int nRepl 54 const G4int nReplicas, 55 const G4double wi 55 const G4double width, 56 const G4double of 56 const G4double offset ) override; 57 // Create division - with number of divi 57 // Create division - with number of divisions and width. 58 58 59 G4VPhysicalVolume* CreatePVDivision( 59 G4VPhysicalVolume* CreatePVDivision( 60 const G4String& p 60 const G4String& pName, 61 G4LogicalVo 61 G4LogicalVolume* pLogical, 62 G4LogicalVo 62 G4LogicalVolume* pMotherLogical, 63 const EAxis pAxis 63 const EAxis pAxis, 64 const G4int nRepl 64 const G4int nReplicas, 65 const G4double of 65 const G4double offset ) override; 66 // Create division - with number of divi 66 // Create division - with number of divisions. 67 67 68 G4VPhysicalVolume* CreatePVDivision( 68 G4VPhysicalVolume* CreatePVDivision( 69 const G4String& p 69 const G4String& pName, 70 G4LogicalVo 70 G4LogicalVolume* pLogical, 71 G4LogicalVo 71 G4LogicalVolume* pMotherLogical, 72 const EAxis pAxis 72 const EAxis pAxis, 73 const G4double wi 73 const G4double width, 74 const G4double of 74 const G4double offset ) override; 75 // Create division - with width. 75 // Create division - with width. 76 76 77 G4VPhysicalVolume* CreatePVDivision( 77 G4VPhysicalVolume* CreatePVDivision( 78 const G4String& p 78 const G4String& pName, 79 G4LogicalVo 79 G4LogicalVolume* pLogical, 80 G4LogicalVo 80 G4LogicalVolume* pMotherLogical, 81 const G4VPVParame 81 const G4VPVParameterisation* param) override; 82 // Create division - with parameterisati 82 // Create division - with parameterisation. 83 83 84 G4bool IsPVDivision(const G4VPhysicalVolum 84 G4bool IsPVDivision(const G4VPhysicalVolume* pv) const override; 85 // Returns true if pv is division. 85 // Returns true if pv is division. 86 86 87 static G4PVDivisionFactory* GetInstance(); 87 static G4PVDivisionFactory* GetInstance(); 88 // Create the unique instance of the sin 88 // Create the unique instance of the singleton. 89 89 90 protected: 90 protected: 91 91 92 G4PVDivisionFactory() = default; << 92 G4PVDivisionFactory(); 93 }; 93 }; 94 94 95 #endif 95 #endif 96 96