From 22300ed7fdc35f6394a934be59e1f837c0407750 Mon Sep 17 00:00:00 2001 From: Markus Frank <markus.frank@cern.ch> Date: Wed, 2 Dec 2015 21:51:58 +0000 Subject: [PATCH] Fix ROOT5 compatibility --- DDCore/include/DD4hep/Dictionary.h | 131 +++++++++--------- DDG4/include/DDG4/DDG4Dict.h | 14 +- DDG4/python/DDG4Dict.C | 206 ++++++++++++++-------------- examples/ClientTests/CMakeLists.txt | 7 +- 4 files changed, 184 insertions(+), 174 deletions(-) diff --git a/DDCore/include/DD4hep/Dictionary.h b/DDCore/include/DD4hep/Dictionary.h index e478f9308..547670943 100644 --- a/DDCore/include/DD4hep/Dictionary.h +++ b/DDCore/include/DD4hep/Dictionary.h @@ -46,7 +46,6 @@ namespace DD4hep { XmlTools::Evaluator& g4Evaluator(); } - // ------------------------------------------------------------------------- // Regular DD4hep dictionaries // ------------------------------------------------------------------------- @@ -55,6 +54,8 @@ namespace DD4hep { #pragma link off all classes; #pragma link off all functions; +using namespace std; + #pragma link C++ namespace XmlTools; #pragma link C++ class XmlTools::Evaluator; #pragma link C++ function DD4hep::evaluator; @@ -65,25 +66,25 @@ namespace DD4hep { #pragma link C++ namespace DD4hep::DDSegmentation; #ifndef __ROOTCLING__ -template std::pair<unsigned int, std::string>; +template pair<unsigned int, string>; template class DD4hep::Geometry::Handle<DD4hep::NamedObject>; -template class std::pair< std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; -template class std::map< std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; +template class pair< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; +template class map< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; #endif -#pragma link C++ class std::pair<unsigned int,std::string>+; +#pragma link C++ class pair<unsigned int,string>+; #pragma link C++ class DD4hep::NamedObject+; #pragma link C++ class DD4hep::Geometry::Ref_t+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::NamedObject>+; -#pragma link C++ class std::pair<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+; -#pragma link C++ class std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+; -#pragma link C++ class std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator; -#pragma link C++ class std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::const_iterator; +#pragma link C++ class pair<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+; +#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+; +#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator; +#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::const_iterator; #ifdef R__MACOSX // We only need these declarations for the clang compiler -#pragma link C++ function operator==( const std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const std::map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); -#pragma link C++ function operator!=( const std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const std::map<std::string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); +#pragma link C++ function operator==( const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); +#pragma link C++ function operator!=( const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); #endif #pragma link C++ class DD4hep::ObjectExtensions+; @@ -92,17 +93,17 @@ template class DD4hep::Geometry::Handle<TNamed>; #pragma link C++ class DD4hep::Geometry::LCDD+; #pragma link C++ class DD4hep::Geometry::LCDDData+; -#pragma link C++ class DD4hep::Geometry::LCDDData::ObjectHandleStd::Map+; +#pragma link C++ class DD4hep::Geometry::LCDDData::ObjectHandleMap+; #pragma link C++ class DD4hep::Geometry::LCDD::PropertyValues+; #pragma link C++ class DD4hep::Geometry::LCDD::Properties+; #pragma link C++ class DD4hepRootPersistency+; // These below are the Namedobject instances to be generated .... -//#pragma link C++ class DD4hep::Geometry::LCDD::HandleStd::Map+; -//#pragma link C++ class DD4hep::Geometry::LCDD::HandleStd::Map::iterator; -//#pragma link C++ class DD4hep::Geometry::LCDD::HandleStd::Map::const_iterator; -//#pragma link C++ class DD4hep::Geometry::LCDD::HandleStd::Map::key_type; // == std::string -//#pragma link C++ class DD4hep::Geometry::LCDD::HandleStd::Map::value_type+; +//#pragma link C++ class DD4hep::Geometry::LCDD::HandleMap+; +//#pragma link C++ class DD4hep::Geometry::LCDD::HandleMap::iterator; +//#pragma link C++ class DD4hep::Geometry::LCDD::HandleMap::const_iterator; +//#pragma link C++ class DD4hep::Geometry::LCDD::HandleMap::key_type; // == string +//#pragma link C++ class DD4hep::Geometry::LCDD::HandleMap::value_type+; #pragma link C++ class DD4hep::Geometry::VolumeManager+; #pragma link C++ class DD4hep::Geometry::VolumeManagerObject+; @@ -130,7 +131,7 @@ template class DD4hep::Geometry::Handle<TNamed>; // Objects.h #pragma link C++ class DD4hep::Geometry::Author+; -#pragma link C++ class std::vector<DD4hep::Geometry::Author>+; +#pragma link C++ class vector<DD4hep::Geometry::Author>+; #pragma link C++ class DD4hep::Geometry::Header+; #pragma link C++ class DD4hep::Geometry::HeaderObject+; @@ -139,50 +140,50 @@ template class DD4hep::Geometry::Handle<TNamed>; #pragma link C++ class DD4hep::Geometry::Constant+; #pragma link C++ class DD4hep::Geometry::ConstantObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::ConstantObject>+; -#pragma link C++ class std::vector<DD4hep::Geometry::Constant>+; +#pragma link C++ class vector<DD4hep::Geometry::Constant>+; #pragma link C++ class DD4hep::Geometry::Atom+; -#pragma link C++ class std::vector<DD4hep::Geometry::Atom>+; +#pragma link C++ class vector<DD4hep::Geometry::Atom>+; #pragma link C++ class DD4hep::Geometry::Handle<TGeoElement>+; #pragma link C++ class DD4hep::Geometry::Material+; -#pragma link C++ class std::vector<DD4hep::Geometry::Material>+; +#pragma link C++ class vector<DD4hep::Geometry::Material>+; #pragma link C++ class DD4hep::Geometry::Handle<TGeoMedium>+; #pragma link C++ class DD4hep::Geometry::VisAttr+; -#pragma link C++ class std::vector<DD4hep::Geometry::VisAttr>+; +#pragma link C++ class vector<DD4hep::Geometry::VisAttr>+; #pragma link C++ class DD4hep::Geometry::VisAttrObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::VisAttrObject>+; #pragma link C++ class DD4hep::Geometry::AlignmentEntry+; #pragma link C++ class DD4hep::Geometry::Limit+; -#pragma link C++ class std::set<DD4hep::Geometry::Limit>+; -#pragma link C++ class std::vector<DD4hep::Geometry::Limit>+; +#pragma link C++ class set<DD4hep::Geometry::Limit>+; +#pragma link C++ class vector<DD4hep::Geometry::Limit>+; #pragma link C++ class DD4hep::Geometry::LimitSet+; -#pragma link C++ class std::vector<DD4hep::Geometry::LimitSet>+; +#pragma link C++ class vector<DD4hep::Geometry::LimitSet>+; #pragma link C++ class DD4hep::Geometry::LimitSetObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::LimitSetObject>+; #pragma link C++ class DD4hep::Geometry::Region+; #pragma link C++ class DD4hep::Geometry::RegionObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::RegionObject>+; -#pragma link C++ class std::vector<DD4hep::Geometry::Region>+; +#pragma link C++ class vector<DD4hep::Geometry::Region>+; // Readout.h -#pragma link C++ class std::vector<std::pair<size_t,std::string> >+; +#pragma link C++ class vector<pair<size_t,string> >+; #pragma link C++ class DD4hep::Geometry::Segmentation+; #pragma link C++ class DD4hep::Geometry::SegmentationObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::SegmentationObject>+; #pragma link C++ class DD4hep::Geometry::Readout+; #pragma link C++ class DD4hep::Geometry::ReadoutObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::ReadoutObject>+; -#pragma link C++ class std::vector<DD4hep::Geometry::Readout>+; -#pragma link C++ class std::vector<DD4hep::Geometry::IDDescriptor>+; +#pragma link C++ class vector<DD4hep::Geometry::Readout>+; +#pragma link C++ class vector<DD4hep::Geometry::IDDescriptor>+; #pragma link C++ class DD4hep::Geometry::Alignment+; #pragma link C++ class DD4hep::Geometry::Handle<TGeoPhysicalNode>+; #pragma link C++ class DD4hep::Geometry::Condition+; -#pragma link C++ class std::vector<DD4hep::Geometry::Condition>+; +#pragma link C++ class vector<DD4hep::Geometry::Condition>+; #pragma link C++ class DD4hep::Geometry::ConditionsInterna::ConditionObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::ConditionsInterna::ConditionObject>+; @@ -194,42 +195,42 @@ template class DD4hep::Geometry::Handle<TNamed>; #pragma link C++ class DD4hep::Geometry::DetElement+; #pragma link C++ class DD4hep::Geometry::DetElementObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::DetElementObject>+; -#pragma link C++ class std::vector<DD4hep::Geometry::DetElement>+; -#pragma link C++ class std::pair<std::string,DD4hep::Geometry::DetElement>+; -#pragma link C++ class std::map<std::string,DD4hep::Geometry::DetElement>+; -#pragma link C++ class std::map<std::string,DD4hep::Geometry::DetElement>::iterator; -#pragma link C++ class std::map<std::string,DD4hep::Geometry::DetElement>::const_iterator; +#pragma link C++ class vector<DD4hep::Geometry::DetElement>+; +#pragma link C++ class pair<string,DD4hep::Geometry::DetElement>+; +#pragma link C++ class map<string,DD4hep::Geometry::DetElement>+; +#pragma link C++ class map<string,DD4hep::Geometry::DetElement>::iterator; +#pragma link C++ class map<string,DD4hep::Geometry::DetElement>::const_iterator; #ifdef R__MACOSX // We only need these declarations for the clang compiler -#pragma link C++ function operator==( const std::map<std::string, DD4hep::Geometry::DetElement >::iterator&,const std::map<std::string, DD4hep::Geometry::DetElement >::iterator& ); -#pragma link C++ function operator!=( const std::map<std::string, DD4hep::Geometry::DetElement >::iterator&,const std::map<std::string, DD4hep::Geometry::DetElement >::iterator& ); +#pragma link C++ function operator==( const map<string, DD4hep::Geometry::DetElement >::iterator&,const map<string, DD4hep::Geometry::DetElement >::iterator& ); +#pragma link C++ function operator!=( const map<string, DD4hep::Geometry::DetElement >::iterator&,const map<string, DD4hep::Geometry::DetElement >::iterator& ); #endif #pragma link C++ class DD4hep::Geometry::SensitiveDetector+; #pragma link C++ class DD4hep::Geometry::SensitiveDetectorObject+; #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::Geometry::SensitiveDetectorObject>+; -#pragma link C++ class std::vector<DD4hep::Geometry::SensitiveDetector>+; +#pragma link C++ class vector<DD4hep::Geometry::SensitiveDetector>+; // Volume.h #pragma link C++ class DD4hep::Geometry::Volume+; #pragma link C++ class DD4hep::Geometry::VolumeExtension+; -#pragma link C++ class std::vector<DD4hep::Geometry::Volume>+; +#pragma link C++ class vector<DD4hep::Geometry::Volume>+; #pragma link C++ class DD4hep::Geometry::Handle<TGeoVolume>+; #pragma link C++ class DD4hep::Geometry::PlacedVolume+; #ifndef __ROOTCLING__ -template std::vector<std::pair<std::string, int> >; -template std::vector<std::pair<std::string, int> >::iterator; +template vector<pair<string, int> >; +template vector<pair<string, int> >::iterator; #endif -#pragma link C++ class std::vector<std::pair<std::string, int> >+; -#pragma link C++ class std::vector<std::pair<std::string, int> >::iterator; +#pragma link C++ class vector<pair<string, int> >+; +#pragma link C++ class vector<pair<string, int> >::iterator; #pragma link C++ class DD4hep::Geometry::PlacedVolumeExtension::VolIDs+; #pragma link C++ class DD4hep::Geometry::PlacedVolumeExtension+; -#pragma link C++ class std::vector<DD4hep::Geometry::PlacedVolume>+; +#pragma link C++ class vector<DD4hep::Geometry::PlacedVolume>+; #pragma link C++ class DD4hep::Geometry::Handle<TGeoNode>+; -#pragma link C++ class std::vector<TGeoNode*>+; -#pragma link C++ class std::vector<TGeoVolume*>+; +#pragma link C++ class vector<TGeoNode*>+; +#pragma link C++ class vector<TGeoVolume*>+; // Shapes.h @@ -296,32 +297,32 @@ template std::vector<std::pair<std::string, int> >::iterator; #pragma link C++ class DD4hep::Geometry::UnionSolid+; #pragma link C++ class DD4hep::Geometry::IntersectionSolid+; -#pragma link C++ class pair<std::string, std::string>+; -#pragma link C++ class std::map<std::string, std::string>+; -#pragma link C++ class std::map<std::string, std::string>::iterator; -#pragma link C++ class std::map<std::string, std::string>::const_iterator; +#pragma link C++ class pair<string, string>+; +#pragma link C++ class map<string, string>+; +#pragma link C++ class map<string, string>::iterator; +#pragma link C++ class map<string, string>::const_iterator; #ifdef R__MACOSX // We only need these declarations for the clang compiler -#pragma link C++ function operator==( const std::map<std::string, std::string>::iterator&, const std::map<std::string, std::string>::iterator& ); -#pragma link C++ function operator!=( const std::map<std::string, std::string>::iterator&, const std::map<std::string, std::string>::iterator& ); +#pragma link C++ function operator==( const map<string, string>::iterator&, const map<string, string>::iterator& ); +#pragma link C++ function operator!=( const map<string, string>::iterator&, const map<string, string>::iterator& ); #endif -#pragma link C++ class std::pair<std::string, std::map<std::string, std::string> >+; -#pragma link C++ class std::map<std::string, std::map<std::string, std::string> >+; -#pragma link C++ class std::map<std::string, std::map<std::string,std::string>>::iterator; -#pragma link C++ class std::map<std::string, std::map<std::string,std::string>>::const_iterator; +#pragma link C++ class pair<string, map<string, string> >+; +#pragma link C++ class map<string, map<string, string> >+; +#pragma link C++ class map<string, map<string,string>>::iterator; +#pragma link C++ class map<string, map<string,string>>::const_iterator; #ifdef R__MACOSX // We only need these declarations for the clang compiler -#pragma link C++ function operator==( const std::map<std::string, std::map<std::string,std::string>>::iterator&, const std::map<std::string, std::map<std::string,std::string>>::iterator& ); -#pragma link C++ function operator!=( const std::map<std::string, std::map<std::string,std::string>>::iterator&, const std::map<std::string, std::map<std::string,std::string>>::iterator& ); +#pragma link C++ function operator==( const map<string, map<string,string>>::iterator&, const map<string, map<string,string>>::iterator& ); +#pragma link C++ function operator!=( const map<string, map<string,string>>::iterator&, const map<string, map<string,string>>::iterator& ); #endif #pragma link C++ class DD4hep::Geometry::LCDD+; -#pragma link C++ function DD4hep::run_interpreter(const std::string& name); -#pragma link C++ function DD4hep::Geometry::_toDictionary(const std::string&, const std::string&); +#pragma link C++ function DD4hep::run_interpreter(const string& name); +#pragma link C++ function DD4hep::Geometry::_toDictionary(const string&, const string&); #endif // __CINT__ @@ -349,13 +350,13 @@ typedef DD4hep::DDSegmentation::CellID CellID; #pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<float>+; #pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<double>+; -#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<std::string>+; +#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<string>+; #if 0 /// Severe problem due to template specialization! -#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<std::vector<int> >+; -#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<std::vector<float> >+; -#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<std::vector<double> >+; -#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<std::vector<std::string> >+; +#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<vector<int> >+; +#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<vector<float> >+; +#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<vector<double> >+; +#pragma link C++ class DD4hep::DDSegmentation::TypedSegmentationParameter<vector<string> >+; #endif #pragma link C++ class DD4hep::DDSegmentation::Segmentation+; diff --git a/DDG4/include/DDG4/DDG4Dict.h b/DDG4/include/DDG4/DDG4Dict.h index 8f3bd3665..2380630eb 100644 --- a/DDG4/include/DDG4/DDG4Dict.h +++ b/DDG4/include/DDG4/DDG4Dict.h @@ -34,6 +34,8 @@ namespace DD4hep { #pragma link off all classes; #pragma link off all functions; +using namespace std; + /// Define namespaces #pragma link C++ namespace DD4hep; #pragma link C++ namespace DD4hep::Geometry; @@ -52,8 +54,8 @@ namespace DD4hep { #pragma link C++ class DD4hep::dd4hep_ptr<DD4hep::Simulation::ParticleExtension>+; #pragma link C++ class DD4hep::dd4hep_ptr<DD4hep::Simulation::ParticleExtension>::base_t+; #pragma link C++ class DD4hep::Simulation::Geant4Particle+; -#pragma link C++ class std::vector<DD4hep::Simulation::Geant4Particle*>+; -#pragma link C++ class std::map<int,DD4hep::Simulation::Geant4Particle*>+; +#pragma link C++ class vector<DD4hep::Simulation::Geant4Particle*>+; +#pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>+; #pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>::iterator; #pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>::const_iterator; @@ -63,24 +65,24 @@ namespace DD4hep { #pragma link C++ function operator!=( const map<int,DD4hep::Simulation::Geant4Particle*>::iterator&, const map<int,DD4hep::Simulation::Geant4Particle*>::iterator& ); #endif -//#pragma link C++ class std::type_info; +//#pragma link C++ class type_info; #pragma link C++ class pair<DD4hep::Callback,unsigned long>+; /// Dictionaires for basic Hit data structures #pragma link C++ class DD4hep::Simulation::Geant4HitData+; -#pragma link C++ class std::vector<DD4hep::Simulation::Geant4HitData*>+; +#pragma link C++ class vector<DD4hep::Simulation::Geant4HitData*>+; #pragma link C++ class DD4hep::Simulation::Geant4HitData::Contribution+; #pragma link C++ class DD4hep::Simulation::Geant4HitData::Contributions+; /// Dictionaires for Tracker Hit data structures #pragma link C++ class DD4hep::Simulation::Geant4Tracker+; #pragma link C++ class DD4hep::Simulation::Geant4Tracker::Hit+; -#pragma link C++ class std::vector<DD4hep::Simulation::Geant4Tracker::Hit*>+; +#pragma link C++ class vector<DD4hep::Simulation::Geant4Tracker::Hit*>+; /// Dictionaires for Calorimeter Hit data structures #pragma link C++ class DD4hep::Simulation::Geant4Calorimeter+; #pragma link C++ class DD4hep::Simulation::Geant4Calorimeter::Hit+; -#pragma link C++ class std::vector<DD4hep::Simulation::Geant4Calorimeter::Hit*>+; +#pragma link C++ class vector<DD4hep::Simulation::Geant4Calorimeter::Hit*>+; #endif diff --git a/DDG4/python/DDG4Dict.C b/DDG4/python/DDG4Dict.C index c377cf290..42116de65 100644 --- a/DDG4/python/DDG4Dict.C +++ b/DDG4/python/DDG4Dict.C @@ -36,7 +36,7 @@ namespace DD4hep { x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \ ~x##Handle() { if ( action) action->release(); } \ Geant4##x* release() { Geant4##x* tmp = action; action=0; return tmp; } \ - operator Geant4##x* () const { return action; } \ + operator DD4hep::Simulation::Geant4##x* () const { return action; } \ Geant4##x* operator->() const { return action; } \ Geant4##x* get() const { return action; } \ } @@ -196,123 +196,127 @@ namespace DD4hep { typedef DD4hep::Simulation::Geant4ActionCreation Geant4ActionCreation; #include "DD4hep/objects/DetectorInterna.h" +using namespace std; +using namespace DD4hep::Simulation; // CINT configuration #if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__) -#pragma link C++ namespace DDSegmentation; + +//#pragma link C++ namespace DDSegmentation; /// Geant4 Vertex dictionaries -#pragma link C++ class DD4hep::Simulation::VertexExtension+; -#pragma link C++ class DD4hep::Simulation::Geant4Vertex+; -#pragma link C++ class std::vector<DD4hep::Simulation::Geant4Vertex*>+; -#pragma link C++ class std::map<int,DD4hep::Simulation::Geant4Vertex*>+; - -#pragma link C++ class DD4hep::Simulation::Geant4ParticleMap+; -#pragma link C++ class DD4hep::Simulation::PrimaryExtension+; -#pragma link C++ class DD4hep::Simulation::Geant4PrimaryInteraction+; -#pragma link C++ class std::map<int,DD4hep::Simulation::Geant4PrimaryInteraction*>+; -#pragma link C++ class DD4hep::Simulation::Geant4PrimaryEvent+; - -#pragma link C++ class DD4hep::PropertyResult; +#pragma link C++ class VertexExtension+; +#pragma link C++ class Geant4Vertex+; +#pragma link C++ class vector<Geant4Vertex*>+; +#pragma link C++ class map<int,Geant4Vertex*>+; + +#pragma link C++ class Geant4ParticleMap+; +#pragma link C++ class PrimaryExtension+; +#pragma link C++ class Geant4PrimaryInteraction+; +#pragma link C++ class vector<Geant4PrimaryInteraction*>+; +#pragma link C++ class map<int,Geant4PrimaryInteraction*>+; +#pragma link C++ class Geant4PrimaryEvent+; + +#pragma link C++ class PropertyResult; #pragma link C++ class Geant4InputAction::Particles; #if ROOT_VERSION_CODE < ROOT_VERSION(6,0,0) namespace { struct bla { - dd4hep_ptr<DD4hep::Simulation::Geant4InputAction::Particles> __m1; - dd4hep_ptr<DD4hep::Simulation::ParticleExtension> __m2; - dd4hep_ptr<DD4hep::Simulation::DataExtension> __m3; + DD4hep::dd4hep_ptr<Geant4InputAction::Particles> __m1; + DD4hep::dd4hep_ptr<ParticleExtension> __m2; + DD4hep::dd4hep_ptr<DataExtension> __m3; }; } #endif -#pragma link C++ class dd4hep_ptr<DD4hep::Simulation::VertexExtension>+; -#pragma link C++ class dd4hep_ptr<DD4hep::Simulation::PrimaryExtension>+; -#pragma link C++ class dd4hep_ptr<DD4hep::Simulation::Geant4InputAction::Particles>; -#pragma link C++ class dd4hep_ptr<DD4hep::Simulation::Geant4InputAction::Particles>::base_t; +#pragma link C++ class DD4hep::dd4hep_ptr<VertexExtension>+; +#pragma link C++ class DD4hep::dd4hep_ptr<PrimaryExtension>+; +#pragma link C++ class DD4hep::dd4hep_ptr<Geant4InputAction::Particles>; +#pragma link C++ class DD4hep::dd4hep_ptr<Geant4InputAction::Particles>::base_t; // Basic stuff -#pragma link C++ class DD4hep::Simulation::Geant4ActionCreation; -#pragma link C++ class DD4hep::Simulation::Geant4Kernel; -#pragma link C++ class DD4hep::Simulation::Geant4Kernel::PhaseSelector; -#pragma link C++ class DD4hep::Simulation::Geant4Context; -#pragma link C++ class DD4hep::Simulation::KernelHandle; -#pragma link C++ class DD4hep::Simulation::Geant4ActionContainer; - -#pragma link C++ class DD4hep::Simulation::Geant4Action; -#pragma link C++ class DD4hep::Simulation::ActionHandle; - -#pragma link C++ class DD4hep::Simulation::RunActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4RunActionSequence; -#pragma link C++ class DD4hep::Simulation::RunActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4SharedRunAction; -#pragma link C++ class DD4hep::Simulation::Geant4RunAction; - -#pragma link C++ class DD4hep::Simulation::EventActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4EventActionSequence; -#pragma link C++ class DD4hep::Simulation::EventActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4SharedEventAction; -#pragma link C++ class DD4hep::Simulation::Geant4EventAction; - -#pragma link C++ class DD4hep::Simulation::SteppingActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4SteppingActionSequence; -#pragma link C++ class DD4hep::Simulation::SteppingActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4SharedSteppingAction; -#pragma link C++ class DD4hep::Simulation::Geant4SteppingAction; - -#pragma link C++ class DD4hep::Simulation::StackingActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4StackingAction; -#pragma link C++ class DD4hep::Simulation::StackingActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4StackingActionSequence; - -#pragma link C++ class DD4hep::Simulation::TrackingActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4TrackingAction; -#pragma link C++ class DD4hep::Simulation::TrackingActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4TrackingActionSequence; - -#pragma link C++ class DD4hep::Simulation::GeneratorActionHandle; -#pragma link C++ class DD4hep::Simulation::GeneratorActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4GeneratorActionSequence; -#pragma link C++ class DD4hep::Simulation::Geant4GeneratorAction; - -#pragma link C++ class DD4hep::Simulation::Geant4InputAction; -#pragma link C++ class DD4hep::Simulation::Geant4EventReader; - -#pragma link C++ class DD4hep::Simulation::PhysicsListHandle; -#pragma link C++ class DD4hep::Simulation::Geant4PhysicsList; -#pragma link C++ class DD4hep::Simulation::PhysicsListActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4PhysicsListActionSequence; - -#pragma link C++ class DD4hep::Simulation::UserInitializationHandle; -#pragma link C++ class DD4hep::Simulation::UserInitializationSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4UserInitializationSequence; -#pragma link C++ class DD4hep::Simulation::Geant4UserInitialization; - -#pragma link C++ class DD4hep::Simulation::DetectorConstructionHandle; -#pragma link C++ class DD4hep::Simulation::DetectorConstructionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4DetectorConstructionSequence; -#pragma link C++ class DD4hep::Simulation::Geant4DetectorConstruction; - -#pragma link C++ class DD4hep::Simulation::SensitiveHandle; -#pragma link C++ class DD4hep::Simulation::SensDetActionSequenceHandle; -#pragma link C++ class DD4hep::Simulation::Geant4ActionSD; -#pragma link C++ class DD4hep::Simulation::Geant4Sensitive; -#pragma link C++ class DD4hep::Simulation::Geant4SensDetActionSequence; - -#pragma link C++ class DD4hep::Simulation::FilterHandle; -#pragma link C++ class DD4hep::Simulation::Geant4Filter; - -#pragma link C++ class DD4hep::Simulation::PhaseActionHandle; -#pragma link C++ class DD4hep::Simulation::Geant4ActionPhase; -#pragma link C++ class DD4hep::Simulation::Geant4PhaseAction; - -#pragma link C++ class DD4hep::Simulation::Callback; -#pragma link C++ class DD4hep::Simulation::Callback::mfunc_t; +#pragma link C++ class Geant4ActionCreation; +#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 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 StackingActionHandle; +#pragma link C++ class Geant4StackingAction; +#pragma link C++ class StackingActionSequenceHandle; +#pragma link C++ class Geant4StackingActionSequence; + +#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 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 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 DD4hep::Callback; +#pragma link C++ class DD4hep::Callback::mfunc_t; // Other (specialized) components -#pragma link C++ class DD4hep::Simulation::Geant4DataDump; -#pragma link C++ class DD4hep::Simulation::Geant4Random; -#pragma link C++ class DD4hep::Simulation::Geant4ParticleHandler; -#pragma link C++ class DD4hep::Simulation::Geant4UserParticleHandler; +#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 diff --git a/examples/ClientTests/CMakeLists.txt b/examples/ClientTests/CMakeLists.txt index 049925a80..ae9d9bed1 100644 --- a/examples/ClientTests/CMakeLists.txt +++ b/examples/ClientTests/CMakeLists.txt @@ -41,8 +41,11 @@ foreach (test Assemblies BoxTrafos IronCylinder LheD_tracker MagnetFields Materi endforeach() # # -# -foreach (test Assemblies BoxTrafos IronCylinder LheD_tracker MagnetFields MiniTel SiliconBlock NestedSimple NestedDetectors ) +# Note: +# IronCylinder has no segmentation! +# MaterialTester no geometry +# SectorBarrelCalorimeter is bad +foreach (test Assemblies BoxTrafos LheD_tracker MagnetFields MiniTel SiliconBlock NestedSimple NestedDetectors ) # # Test material scans in [origine to 10 meters in y] dd4hep_add_test_reg( ClientTests_${test}_material_scan -- GitLab