Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:51

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 //
0028 // ----------------------
0029 // Class Description:
0030 //
0031 // Definition of global methods:
0032 //
0033 // void G3toG4MANY(G3VolTableEntry* curVTE);
0034 //
0035 // void MakeBooleanSolids(G3VolTableEntry* curVTE, 
0036 //                        G3VolTableEntryVector* overlaps,
0037 //                        const G4Transform3D& transform);
0038 //
0039 // void SubstractSolids(G3VolTableEntry* vte1, 
0040 //                      G3VolTableEntry* vte2,
0041 //                      G4int copy, 
0042 //                      const G4Transform3D& transform);
0043 //
0044 // G4Transform3D GetTransform3D(G3Pos*);
0045 //
0046 // MANY positions are resolved in G3toG4MANY() function, which has to be
0047 // processed before G3toG4BuildTree() (it is not called by default).
0048 // In order to resolve MANY, the user code has to provide additional info
0049 // using G4gsbool(G4String volName, G4String manyVolName) function, for
0050 // all overlapping volumes. Daughters of overlapping volumes are then
0051 // resolved automatically and should not be specified via Gsbool.
0052 //
0053 // Limitation: a volume with a MANY position can have only this one
0054 // ----------  position; if more than one position is needed a new volume
0055 //             has to be defined (gsvolu) for each position.
0056 
0057 // ----------------------
0058 //
0059 // By I.Hrivnacova, 22.10.01
0060 
0061 #ifndef G3TOG4_MANY_HH
0062 #define G3TOG4_MANY_HH 1
0063 
0064 #include <vector>
0065 #include "G3VolTableEntry.hh"
0066 #include "G4Transform3D.hh"
0067 
0068 typedef std::vector<G3VolTableEntry*>  G3VolTableEntryVector;
0069 
0070 void G3toG4MANY(G3VolTableEntry* curVTE);
0071 
0072 void MakeBooleanSolids(G3VolTableEntry* curVTE, 
0073                        G3VolTableEntryVector* overlaps,
0074                const G4Transform3D& transform);
0075 
0076 void SubstractSolids(G3VolTableEntry* vte1, 
0077                      G3VolTableEntry* vte2,
0078                  G4int copy, 
0079              const G4Transform3D& transform);
0080 
0081 G4Transform3D GetTransform3D(G3Pos*);
0082 
0083 #endif