diff --git a/DDCore/include/DD4hep/Dictionary.h b/DDCore/include/DD4hep/Dictionary.h index b5868c96b264b98152497f162dcdf7f3b9b99941..bd057859c407f7514fe4d6d06a75ba46144318ae 100644 --- a/DDCore/include/DD4hep/Dictionary.h +++ b/DDCore/include/DD4hep/Dictionary.h @@ -21,6 +21,8 @@ #include <vector> #include <map> +#include <string> + typedef DD4hep::Geometry::PlacedVolumeExtension::VolID VolID; #include "TRint.h" @@ -53,17 +55,23 @@ namespace DD4hep { #pragma link C++ namespace DD4hep::DDSegmentation; template pair<unsigned int, string>; -#pragma link C++ class pair<unsigned int,std::string>+; +#pragma link C++ class pair<unsigned int,string>+; -template class DD4hep::Geometry::Handle<NamedObject>; -template class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; +template class DD4hep::Geometry::Handle<DD4hep::NamedObject>; +template class pair< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; +template class map< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >; #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 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> >::*+; #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; +//#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::const_iterator; +//#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::reverse_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& ); + #pragma link C++ class DD4hep::ObjectExtensions+; template class DD4hep::Geometry::Handle<TNamed>; @@ -178,6 +186,9 @@ template class DD4hep::Geometry::Handle<TNamed>; #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; +#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& ); + #pragma link C++ class DD4hep::Geometry::SensitiveDetector+; #pragma link C++ class DD4hep::Geometry::SensitiveDetectorObject+; @@ -273,8 +284,17 @@ template vector<pair<string, int> >::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; +#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& ); + #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; +#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& ); #pragma link C++ class DD4hep::Geometry::LCDD+; diff --git a/DDCore/include/ROOT/LinkDef.h b/DDCore/include/ROOT/LinkDef.h index cf2e5f991620c01ff163ffe3d82a16d529547de6..cea2a4e8bb0cbec9cfcccd5200664993a265580b 100644 --- a/DDCore/include/ROOT/LinkDef.h +++ b/DDCore/include/ROOT/LinkDef.h @@ -7,4 +7,3 @@ // // Keep this file EMPTY. All CINT statements can be put in header files preceeding this one..... // - diff --git a/DDG4/include/DDG4/DDG4Dict.h b/DDG4/include/DDG4/DDG4Dict.h index af88076721e355ff900e69cc53e01559732f104f..3750db29d524c7d648b79f06ea23ab50aafe0ac9 100644 --- a/DDG4/include/DDG4/DDG4Dict.h +++ b/DDG4/include/DDG4/DDG4Dict.h @@ -45,6 +45,11 @@ namespace DD4hep { #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 map<int,DD4hep::Simulation::Geant4Particle*>::iterator; +#pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>::const_iterator; +#pragma link C++ function operator==( const map<int,DD4hep::Simulation::Geant4Particle*>::iterator&, const map<int,DD4hep::Simulation::Geant4Particle*>::iterator& ); +#pragma link C++ function operator!=( const map<int,DD4hep::Simulation::Geant4Particle*>::iterator&, const map<int,DD4hep::Simulation::Geant4Particle*>::iterator& ); + /// Dictionaires for basic Hit data structures #pragma link C++ class DD4hep::Simulation::Geant4HitData+; diff --git a/DDG4/python/DDG4.py b/DDG4/python/DDG4.py index c621d7619024976d73d38e48c99448a5b4297213..c2233f3ee12a2f6c5f42dddc8ad8d26684254e64 100644 --- a/DDG4/python/DDG4.py +++ b/DDG4/python/DDG4.py @@ -226,18 +226,18 @@ _props('Geant4PhysicsListActionSequence') -class Iter(): - def Iterator(self): - ''' Fix for map iteration on macos ''' - n = self.m.size() - it = self.m.begin() - for i in range(0,n): - yield it - it.__preinc__() - def __init__(self,m): - self.m = m - def __iter__(self): - return self.Iterator() +#class Iter(): +# def Iterator(self): +# ''' Fix for map iteration on macos ''' +# n = self.m.size() +# it = self.m.begin() +# for i in range(0,n): +# yield it +# it.__preinc__() +# def __init__(self,m): +# self.m = m +# def __iter__(self): +# return self.Iterator() @@ -270,7 +270,7 @@ class Simple: def printDetectors(self): print '+++ List of detectors:' - for i in Iter( self.lcdd.detectors() ): + for i in self.lcdd.detectors(): o = DetElement(i.second) sd = self.lcdd.sensitiveDetector(o.name()) if sd.isValid():