[uLib Geometry]

non working version!

+ adds ProgrammableAccessor
+ renaming of some Image structures ...
This commit is contained in:
Andrea Rigoni
2014-11-03 10:27:52 +00:00
commit 99e771a223
403 changed files with 61684 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
#include <Geant4/G4RunManager.hh>
#include <Geant4/G4Material.hh>
#include <Geant4/G4NistManager.hh>
#include <Geant4/G4Box.hh>
#include <Geant4/G4TessellatedSolid.hh>
#include <Geant4/G4LogicalVolume.hh>
#include <Geant4/G4GDMLParser.hh>
//#include <Geant4/G4GDMLRead.hh>
//#include <Geant4/G4GDMLReadSolids.hh>
#include "Math/TriangleMesh.h"
#include "Vtk/vtkTriangleMesh.h"
#include "Detectors/Solid.h"
using namespace uLib;
namespace Material {
G4Material *StainlessSteel(float dens = 8.06) { // <- g/cm3
G4NistManager* man = G4NistManager::Instance();
man->SetVerbose(1);
// Define elements from NIST
G4Element* C = man->FindOrBuildElement("C");
G4Element* Si = man->FindOrBuildElement("Si");
G4Element* Cr = man->FindOrBuildElement("Cr");
G4Element* Mn = man->FindOrBuildElement("Mn");
G4Element* Fe = man->FindOrBuildElement("Fe");
G4Element* Ni = man->FindOrBuildElement("Ni");
// Define materials not in NIST
G4double density = dens*g/cm3;
G4int ncomponents;
G4double fractionmass;
G4Material* StainlessSteel = new G4Material("StainlessSteel", density, ncomponents=6);
StainlessSteel->AddElement(C, fractionmass=0.001);
StainlessSteel->AddElement(Si, fractionmass=0.007);
StainlessSteel->AddElement(Cr, fractionmass=0.18);
StainlessSteel->AddElement(Mn, fractionmass=0.01);
StainlessSteel->AddElement(Fe, fractionmass=0.712);
StainlessSteel->AddElement(Ni, fractionmass=0.09);
return StainlessSteel;
}
//G4Material *ASTM_A710(float dens = 7.85) { // <- g/cm3
// G4NistManager* man = G4NistManager::Instance();
// man->SetVerbose(1);
// // Define elements from NIST
// G4Element* C = man->FindOrBuildElement("C");
// G4Element* Cr = man->FindOrBuildElement("Cr");
// G4Element* Cu = man->FindOrBuildElement("Cu");
// G4Element* Fe = man->FindOrBuildElement("Fe");
// G4Element* Mn = man->FindOrBuildElement("Mn");
// G4Element* Mo = man->FindOrBuildElement("Mo");
// G4Element* Ni = man->FindOrBuildElement("Ni");
// G4Element* Nb = man->FindOrBuildElement("Nb");
// G4Element* P = man->FindOrBuildElement("P");
// G4Element* Si = man->FindOrBuildElement("Si");
// G4Element* S = man->FindOrBuildElement("S");
// // Define materials not in NIST
// G4double density = dens*g/cm3;
// G4int ncomponents;
// G4double fractionmass;
// G4Material* StainlessSteel = new G4Material("StainlessSteel", density, ncomponents=6);
// StainlessSteel->AddElement(C, fractionmass=0.0007);
// StainlessSteel->AddElement(Cr, fractionmass=0.18);
// StainlessSteel->AddElement(Cr, fractionmass=0.18);
// StainlessSteel->AddElement(Cr, fractionmass=0.18);
// StainlessSteel->AddElement(Si, fractionmass=0.007);
// StainlessSteel->AddElement(Mn, fractionmass=0.01);
// StainlessSteel->AddElement(Fe, fractionmass=0.712);
// StainlessSteel->AddElement(Ni, fractionmass=0.09);
// return StainlessSteel;
//}
G4Material *Tungsten(float dens = 19.25) { // <- g/cm3
G4NistManager* man = G4NistManager::Instance();
man->SetVerbose(1);
G4Element* Wf = man->FindOrBuildElement("W");
G4double density = dens*g/cm3;
G4int ncomponents;
G4double fractionmass;
G4Material* Tungsten = new G4Material("Tungsten", density, ncomponents=1);
Tungsten->AddElement(Wf, fractionmass=1);
return Tungsten;
}
}
#include <Geant4/G4PVPlacement.hh>
int main()
{
G4GDMLParser parser;
G4Material *steel = Material::StainlessSteel();
// Acciaio1 //
{
TriangleMesh mesh;
vtkTriangleMesh v_mesh(mesh);
v_mesh.ReadFromObjFile("objects/ByMaterial/Acciaio1.obj");
mesh.PrintSelf(std::cout);
TessellatedSolid solid("telaio1");
solid.SetMaterial(steel);
solid.SetMesh(mesh);
parser.Write("telaio1.gdml",solid.GetLogical());
}
// Acciaio2 //
{
TriangleMesh mesh;
vtkTriangleMesh v_mesh(mesh);
v_mesh.ReadFromObjFile("objects/ByMaterial/Acciaio2.obj");
mesh.PrintSelf(std::cout);
TessellatedSolid solid("telaio2");
solid.SetMaterial(steel);
solid.SetMesh(mesh);
parser.Write("telaio2.gdml",solid.GetLogical());
}
// Assali //
{
TriangleMesh mesh;
vtkTriangleMesh v_mesh(mesh);
v_mesh.ReadFromObjFile("objects/ByMaterial/Assali.obj");
mesh.PrintSelf(std::cout);
TessellatedSolid solid("assali");
solid.SetMaterial(steel);
solid.SetMesh(mesh);
parser.Write("assali.gdml",solid.GetLogical());
}
}

View File

@@ -0,0 +1,11 @@
include $(top_srcdir)/Common.am
include $(top_srcdir)/src/Vtk/Vtk.am
#AM_DEFAULT_SOURCE_EXT = .cpp
LDADD = $(top_srcdir)/libmutom-0.1.la $(AM_LIBS_ALL)
bin_PROGRAMS = BuildTruck

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.