diff --git a/DDG4/include/DDG4/Geant4DetectorConstruction.h b/DDG4/include/DDG4/Geant4DetectorConstruction.h index ae350400ffbccf11bce5e1dda0675b0d307b376c..ff202dd86214f83ed330395dddbc7e7b95a1437b 100644 --- a/DDG4/include/DDG4/Geant4DetectorConstruction.h +++ b/DDG4/include/DDG4/Geant4DetectorConstruction.h @@ -17,11 +17,14 @@ // Framework include files #include "DDG4/Geant4Action.h" +#if !defined(__CINT__) #include "DDG4/Geant4GeometryInfo.h" +#endif // Forward declarations class G4VUserDetectorConstruction; class G4VSensitiveDetector; +class G4VPhysicalVolume; class G4LogicalVolume; @@ -38,6 +41,7 @@ namespace DD4hep { // Forward declarations class Geant4Kernel; + class Geant4GeometryInfo; class Geant4DetectorConstruction; class Geant4DetectorConstructionContext; class Geant4DetectorConstructionSequence; @@ -57,7 +61,11 @@ namespace DD4hep { class Geant4DetectorConstructionContext { public: /// Reference to geometry object +#ifdef __CINT__ + Geometry::LCDD* lcdd; +#else Geometry::LCDD& lcdd; +#endif /// Reference to the world after construction G4VPhysicalVolume* world; /// The cached geometry information @@ -143,6 +151,7 @@ namespace DD4hep { /// Sensitive detector construction callback. Called at "ConstructSDandField()" virtual void constructSensitives(Geant4DetectorConstructionContext* ctxt); +#if !defined(__CINT__) //@{ Accessor to the various geant4 maps after construction /// Access to the converted materials @@ -162,8 +171,7 @@ namespace DD4hep { const Geant4GeometryMaps::LimitMap& limits() const; /// Access to the converted regions const Geant4GeometryMaps::RegionMap& regions() const; - /// Access to the converted sensitive detectors - //const Geant4GeometryMaps::SensDetMap& sensitives() const; +#endif //@} }; diff --git a/DDG4/python/DDG4Dict.C b/DDG4/python/DDG4Dict.C index 476d3d1692df29cb0720bffd422de9400a54897e..83c00d4bd05a8525a30a7c886943a9ca5f3a43ab 100644 --- a/DDG4/python/DDG4Dict.C +++ b/DDG4/python/DDG4Dict.C @@ -29,7 +29,6 @@ using namespace DD4hep::Simulation; #include "DDG4/Geant4Config.h" #include "DDG4/Geant4DataDump.h" #include "DDG4/Geant4InputAction.h" -#include <iostream> namespace DD4hep { namespace Simulation { @@ -235,83 +234,91 @@ namespace { #pragma link C++ class dd4hep_ptr<Geant4InputAction::Particles>::base_t; #endif -#pragma link C++ class ActionHandle; -#pragma link C++ class FilterHandle; -#pragma link C++ class RunActionHandle; -#pragma link C++ class PhaseActionHandle; -#pragma link C++ class GeneratorActionHandle; -#pragma link C++ class EventActionHandle; -#pragma link C++ class PhysicsListHandle; -#pragma link C++ class TrackingActionHandle; -#pragma link C++ class SteppingActionHandle; -#pragma link C++ class StackingActionHandle; -#pragma link C++ class SensitiveHandle; -#pragma link C++ class UserInitializationHandle; -#pragma link C++ class DetectorConstructionHandle; - -#pragma link C++ class GeneratorActionSequenceHandle; -#pragma link C++ class RunActionSequenceHandle; -#pragma link C++ class EventActionSequenceHandle; -#pragma link C++ class TrackingActionSequenceHandle; -#pragma link C++ class SteppingActionSequenceHandle; -#pragma link C++ class StackingActionSequenceHandle; -#pragma link C++ class PhysicsListActionSequenceHandle; -#pragma link C++ class SensDetActionSequenceHandle; -#pragma link C++ class UserInitializationSequenceHandle; -#pragma link C++ class DetectorConstructionSequenceHandle; - -#pragma link C++ class Geant4DataDump; - +// Basic stuff #pragma link C++ class Geant4ActionCreation; -#pragma link C++ class Geant4Action; #pragma link C++ class Geant4Kernel; #pragma link C++ class Geant4Kernel::PhaseSelector; #pragma link C++ class Geant4Context; #pragma link C++ class KernelHandle; -#pragma link C++ class Geant4Random; +#pragma link C++ class Geant4ActionContainer; +#pragma link C++ class Geant4Action; +#pragma link C++ class ActionHandle; + +#pragma link C++ class RunActionSequenceHandle; #pragma link C++ class Geant4RunActionSequence; +#pragma link C++ class RunActionHandle; +#pragma link C++ class Geant4SharedRunAction; #pragma link C++ class Geant4RunAction; +#pragma link C++ class EventActionSequenceHandle; #pragma link C++ class Geant4EventActionSequence; +#pragma link C++ class EventActionHandle; +#pragma link C++ class Geant4SharedEventAction; #pragma link C++ class Geant4EventAction; +#pragma link C++ class SteppingActionSequenceHandle; #pragma link C++ class Geant4SteppingActionSequence; +#pragma link C++ class SteppingActionHandle; +#pragma link C++ class Geant4SharedSteppingAction; #pragma link C++ class Geant4SteppingAction; -#pragma link C++ class Geant4StackingActionSequence; +#pragma link C++ class StackingActionHandle; #pragma link C++ class Geant4StackingAction; +#pragma link C++ class StackingActionSequenceHandle; +#pragma link C++ class Geant4StackingActionSequence; -#pragma link C++ class Geant4TrackingActionSequence; +#pragma link C++ class TrackingActionHandle; #pragma link C++ class Geant4TrackingAction; +#pragma link C++ class TrackingActionSequenceHandle; +#pragma link C++ class Geant4TrackingActionSequence; +#pragma link C++ class GeneratorActionHandle; +#pragma link C++ class GeneratorActionSequenceHandle; #pragma link C++ class Geant4GeneratorActionSequence; #pragma link C++ class Geant4GeneratorAction; + #pragma link C++ class Geant4InputAction; #pragma link C++ class Geant4EventReader; -#pragma link C++ class Geant4PhysicsListActionSequence; +#pragma link C++ class PhysicsListHandle; #pragma link C++ class Geant4PhysicsList; +#pragma link C++ class PhysicsListActionSequenceHandle; +#pragma link C++ class Geant4PhysicsListActionSequence; +#pragma link C++ class UserInitializationHandle; +#pragma link C++ class UserInitializationSequenceHandle; #pragma link C++ class Geant4UserInitializationSequence; #pragma link C++ class Geant4UserInitialization; +#pragma link C++ class DetectorConstructionHandle; +#pragma link C++ class DetectorConstructionSequenceHandle; #pragma link C++ class Geant4DetectorConstructionSequence; #pragma link C++ class Geant4DetectorConstruction; -#pragma link C++ class Geant4ParticleHandler; -#pragma link C++ class Geant4UserParticleHandler; -#pragma link C++ class Geant4Filter; +#pragma link C++ class SensitiveHandle; +#pragma link C++ class SensDetActionSequenceHandle; #pragma link C++ class Geant4ActionSD; #pragma link C++ class Geant4Sensitive; #pragma link C++ class Geant4SensDetActionSequence; +#pragma link C++ class FilterHandle; +#pragma link C++ class Geant4Filter; + +#pragma link C++ class PhaseActionHandle; #pragma link C++ class Geant4ActionPhase; #pragma link C++ class Geant4PhaseAction; + #pragma link C++ class Callback; #pragma link C++ class Callback::mfunc_t; -// Work around CINT bug: +// Other (specialized) components +#pragma link C++ class Geant4DataDump; +#pragma link C++ class Geant4Random; +#pragma link C++ class Geant4ParticleHandler; +#pragma link C++ class Geant4UserParticleHandler; + + // somehow the symbol Geometry moved into global namespace. Redeclare it here namespace Geometry {} #pragma link C++ namespace Geometry; diff --git a/DDG4/src/python/Geant4PythonCall.cpp b/DDG4/src/python/Geant4PythonCall.cpp index a580f40c6f57edbea226b4f8c349d45e439cdf62..1dc4a5743461c0ba9baac0738b0208322ee9465c 100644 --- a/DDG4/src/python/Geant4PythonCall.cpp +++ b/DDG4/src/python/Geant4PythonCall.cpp @@ -16,6 +16,7 @@ // Framework include files #include "DDG4Python/Geant4PythonCall.h" #include "DDG4Python/DDPython.h" +#include "TPyReturn.h" // C/C++ include files #include <stdexcept> @@ -88,7 +89,9 @@ namespace DD4hep { namespace Simulation { INSTANTIATE(unsigned long); INSTANTIATE(float); INSTANTIATE(double); +#if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0) INSTANTIATE(char*); +#endif INSTANTIATE(const char*); INSTANTIATE(PyObject*); INSTANTIATE(void*); diff --git a/DDG4/tpython/DDPython.cpp b/DDG4/tpython/DDPython.cpp index 64afefd5418bb948973a9d600f10a5edda699489..878c62db5020ff92e5300f81e2cd524615dc2181 100644 --- a/DDG4/tpython/DDPython.cpp +++ b/DDG4/tpython/DDPython.cpp @@ -21,6 +21,7 @@ #include "Python.h" #include <fstream> #include <sstream> +#include <stdexcept> #include <pthread.h> // Forward declartions diff --git a/DDRec/include/DDRec/Surface.h b/DDRec/include/DDRec/Surface.h index e273168bc11855954e3ef3bfa003e090c156684b..b4e48490724545046df874f26ea7674f545091cc 100644 --- a/DDRec/include/DDRec/Surface.h +++ b/DDRec/include/DDRec/Surface.h @@ -483,14 +483,14 @@ namespace DD4hep { class VolCylinder : public VolSurface{ public: - VolCylinder( Geometry::Volume vol, SurfaceType type_val, double thickness_inner ,double thickness_outer, Vector3D origin_pos ) : - VolSurface( new VolCylinderImpl( vol, type_val, thickness_inner , thickness_outer, origin_pos ) ) {} + VolCylinder( Geometry::Volume vol, SurfaceType typ_val, double thickness_inner ,double thickness_outer, Vector3D origin_val ) : + VolSurface( new VolCylinderImpl( vol, typ_val, thickness_inner , thickness_outer, origin_val ) ) {} } ; class VolCone : public VolSurface{ public: - VolCone( Geometry::Volume vol, SurfaceType type, double thickness_inner ,double thickness_outer, Vector3D v, Vector3D origin ) : - VolSurface( new VolConeImpl( vol, type, thickness_inner , thickness_outer, v, origin ) ) {} + VolCone( Geometry::Volume vol, SurfaceType typ_val, double thickness_inner ,double thickness_outer, Vector3D v_val, Vector3D origin_val ) : + VolSurface( new VolConeImpl( vol, typ_val, thickness_inner , thickness_outer, v_val, origin_val ) ) {} } ; //====================================================================================================== diff --git a/DDRec/src/Surface.cpp b/DDRec/src/Surface.cpp index 7f22f0a71109b3cd8c71b19836a4b144194f8ec9..614e9f596ad0ad643318595a18baef55fd856c79 100644 --- a/DDRec/src/Surface.cpp +++ b/DDRec/src/Surface.cpp @@ -319,27 +319,27 @@ namespace DD4hep { //================================================================================================================ VolConeImpl::VolConeImpl( Geometry::Volume vol, SurfaceType typ, - double thickness_inner ,double thickness_outer, Vector3D v, Vector3D o ) : + double thickness_inner ,double thickness_outer, Vector3D v_val, Vector3D o_val ) : - VolSurfaceBase(typ, thickness_inner, thickness_outer, Vector3D() , v , Vector3D() , Vector3D() , vol, 0) { + VolSurfaceBase(typ, thickness_inner, thickness_outer, Vector3D() , v_val , Vector3D() , Vector3D() , vol, 0) { - Vector3D o_rphi( o.x() , o.y() , 0. ) ; + Vector3D o_rphi( o_val.x() , o_val.y() , 0. ) ; // sanity check: v and o have to have a common phi - double dphi = v.phi() - o_rphi.phi() ; + double dphi = v_val.phi() - o_rphi.phi() ; while( dphi < -M_PI ) dphi += 2.*M_PI ; while( dphi > M_PI ) dphi -= 2.*M_PI ; if( std::fabs( dphi ) > 1e-6 ){ - std::stringstream sst ; sst << "VolConeImpl::VolConeImpl() - incompatibel vector v and o given " - << v << " - " << o ; - throw std::runtime_error( sst.str() ) ; + std::stringstream sst ; sst << "VolConeImpl::VolConeImpl() - incompatibel vector v and o given " + << v_val << " - " << o_val ; + throw std::runtime_error( sst.str() ) ; } - Vector3D n( 1. , v.phi() , ( v.theta() + M_PI/2. ) , Vector3D::spherical ) ; - Vector3D u = v.cross( n ) ; + Vector3D n( 1. , v_val.phi() , ( v_val.theta() + M_PI/2. ) , Vector3D::spherical ) ; + Vector3D u_val = v_val.cross( n ) ; - setU( u ) ; + setU( u_val ) ; setOrigin( o_rphi ) ; setNormal( n ) ; diff --git a/doc/CompileAllOptionPermutations.sh b/doc/CompileAllOptionPermutations.sh index 79fa66b41e60bab72a8ec407d64a1d87e7312ae1..fcd6f907779efcd715dda7ac74bd331d5829cf9b 100755 --- a/doc/CompileAllOptionPermutations.sh +++ b/doc/CompileAllOptionPermutations.sh @@ -5,8 +5,8 @@ INSTALL_G4=${SW}/g4_10.01.p02_dbg/lib/Geant4-10.1.2; INSTALL_LCIO=${SW}/lcio/v02-04-03; INSTALL_XERCESC=${SW}/xercesc; CHECKOUT=${dir_name}/../../DD4hep.trunk/checkout; -export ROOTSYS=${SW}/root_v5.34.25_dbg; export ROOTSYS=${SW}/root_v6.04.00_dbg; +export ROOTSYS=${SW}/root_v5.34.25_dbg; . ${ROOTSYS}/bin/thisroot.sh; #cat ${ROOTSYS}/bin/thisroot.sh; #