ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G3Division.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G3Division.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 // ----------------------
29 // Class description:
30 //
31 // This class tranforms G3 divided volumes to G4 replicated volumes.
32 // UpdateVTE() method checks parameters of mother volume
33 // and in case they are complete the solid that will be replicated
34 // is created. In case of division with offset an additinal envelope
35 // VTE (G3VolTableEntry instance) is created.
36 // CreatePVReplica() methods creates the G4PVReplica instance.
37 
38 // ----------------------
39 //
40 // by I.Hrivnacova, V.Berejnoi, 27 Sep 99
41 
42 #ifndef G3DIVISION_HH
43 #define G3DIVISION_HH 1
44 
45 #include "globals.hh"
46 #include "geomdefs.hh"
47 
48 class G3VolTableEntry;
49 class G4VPhysicalVolume;
50 class G4LogicalVolume;
51 
53 
54 class G3Division
55 {
56  public: // with description
57 
59  G4int nofDivision, G4int iaxis, G4int nmed, G4double c0,
60  G4double step);
62  const G3Division& division);
63  virtual ~G3Division();
64 
65  // methods
66  void UpdateVTE();
67  void CreatePVReplica();
68 
69  private:
70 
71  // methods
72  void SetRangeAndAxis();
73  void CreateSolid(G4String shape, G4double par[], G4int npar);
75  G4double par[], G4int npar);
76  G3VolTableEntry* Dvn ();
78  G3VolTableEntry* Dvt ();
80  void Exception(G4String where, G4String what);
81 
82  // data members
86  G4int fNofDivisions; // ndiv/ndvmx
96 };
97 
98 #endif //G3_DIVISION_H