ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4LogicalVolumeModel.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4LogicalVolumeModel.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 // John Allison 26th July 1999.
30 //
31 // Class Description:
32 //
33 // Model for logical volumes. It describes a logical volume and its
34 // daughters to any depth - usually only the first by default.
35 //
36 // Inherits from G4PhysicalVolumeModel; for more information see that
37 // class description.
38 
39 #ifndef G4LOGICALVOLUMEMODEL_HH
40 #define G4LOGICALVOLUMEMODEL_HH
41 
42 #include "G4PhysicalVolumeModel.hh"
43 
44 #include "globals.hh"
45 #include "G4Transform3D.hh"
46 
47 class G4LogicalVolume;
49 
51 
52 public: // With description
53 
56  G4int soughtDepth = 1,
57  G4bool booleans = true,
58  G4bool voxels = true,
59  G4bool readout = true,
60  G4bool checkOverlaps = true,
61  const G4Transform3D& modelTransformation = G4Transform3D(),
62  const G4ModelingParameters* = 0);
63 
64  virtual ~G4LogicalVolumeModel ();
65 
67 
68  G4bool Validate (G4bool) {return true;}
69 
70 protected:
71 
72  // This called from G4PhysicalVolumeModel::DescribeAndDescend by the
73  // virtual function mechanism.
74  void DescribeSolid
75  (const G4Transform3D& theAT,
76  G4VSolid* pSol,
77  const G4VisAttributes* pVisAttribs,
78  G4VGraphicsScene& sceneHandler);
79 
81  // Data members...
82 
84  G4bool fBooleans; // Flag for drawing boolean components.
85  G4bool fVoxels; // Flag for drawing voxels.
86  G4bool fReadout; // Flag for drawing readout geometry.
87  G4bool fCheckOverlaps; // Flag for checking overlaps.
88  G4bool fOverlapsPrinted; // To avoid multiple printing.
89 
90 };
91 
92 #endif