diff --git a/DDAlign/include/DDAlign/AlignmentOperators.h b/DDAlign/include/DDAlign/AlignmentOperators.h index 080bfc449bada8b44974605124373cef3184d18a..e03665355788f0e61abda26521d7b2b90eca919e 100644 --- a/DDAlign/include/DDAlign/AlignmentOperators.h +++ b/DDAlign/include/DDAlign/AlignmentOperators.h @@ -57,7 +57,6 @@ namespace DD4hep { const Entries& entries; /// Initializing functor constructor AlignmentSelector(GlobalAlignmentCache& c, Nodes& n, const Entries& e) : AlignmentOperator(c,n), entries(e) {} - ~AlignmentSelector() { } const AlignmentSelector& reset() const { nodes.clear(); return *this; } /// Function callback for cache entries void operator()(const GlobalAlignmentCache::Cache::value_type& e) const; diff --git a/DDAlign/include/DDAlign/AlignmentsManager.h b/DDAlign/include/DDAlign/AlignmentsManager.h index 7402335b803e80430cf99dd06a92dd479243d3f3..453c97cb2cda40576115c2f1613c754ffce918e6 100644 --- a/DDAlign/include/DDAlign/AlignmentsManager.h +++ b/DDAlign/include/DDAlign/AlignmentsManager.h @@ -68,7 +68,9 @@ namespace DD4hep { template <typename T> static AlignmentsManager from(T& host); /// Default constructor - AlignmentsManager() : Handle<Object>(0) {} + AlignmentsManager() = default; + /// Copy constructor + AlignmentsManager(const AlignmentsManager& copy) = default; /// Constructor to be used for proper handles AlignmentsManager(const Handle<Object>& e) : Handle<Object>(e) {} /// Constructor to be used for proper handles @@ -77,8 +79,8 @@ namespace DD4hep { AlignmentsManager(const std::string& name); /// Initializing constructor. Creates the object! AlignmentsManager(char const* name); - /// Default destructor - ~AlignmentsManager() {} + /// Assignment operator + AlignmentsManager& operator=(const AlignmentsManager& mgr) = default; /// Delete the manager. Be careful: this affects all referencing handles! void destroy(); /// Adopy alignment dependency for later recalculation diff --git a/DDAlign/src/AlignmentsManager.cpp b/DDAlign/src/AlignmentsManager.cpp index 9314678a9f9d310b286219955bca57d57c59eb85..ca6762a1454124d2e4d76ce0a41dba9577a8e985 100644 --- a/DDAlign/src/AlignmentsManager.cpp +++ b/DDAlign/src/AlignmentsManager.cpp @@ -32,7 +32,8 @@ namespace DD4hep { typedef Conditions::ConditionDependency Dependency; - struct AlignContext { + class AlignContext { + public: struct Entry { const Dependency* dep; DetElement::Object* det; diff --git a/DDG4/include/DDG4/Geant4PhysicsList.h b/DDG4/include/DDG4/Geant4PhysicsList.h index b52ce05144bbea5ab2c1aab291f4d16b62a3c960..75c85a5342b7d84aaa7798d6204e819f76be9d6f 100644 --- a/DDG4/include/DDG4/Geant4PhysicsList.h +++ b/DDG4/include/DDG4/Geant4PhysicsList.h @@ -66,14 +66,12 @@ namespace DD4hep { typedef std::map<std::string, ParticleProcesses> PhysicsProcesses; /// Structure describing a G4 particle constructor - class ParticleConstructor: public std::string { + class ParticleConstructor : public std::string { public: /// Default constructor ParticleConstructor() = default; /// Initalizing constructor ParticleConstructor(const std::string& s) : std::string(s) { } - /// Default destructor - ~ParticleConstructor() {} /// Assignment operator ParticleConstructor& operator=(const ParticleConstructor& c) { if ( &c != this ) this->std::string::operator=(c); @@ -99,8 +97,6 @@ namespace DD4hep { PhysicsConstructor(const PhysicsConstructor& c) : std::string(c), pointer(c.pointer) {} /// Initalizing constructor PhysicsConstructor(const std::string& s) : std::string(s), pointer(0) {} - /// Default destructor - ~PhysicsConstructor() {} /// Assignment operator PhysicsConstructor& operator=(const PhysicsConstructor& c) { if ( &c != this ) { this->std::string::operator=(c); pointer=c.pointer; } diff --git a/DDG4/src/Geant4Random.cpp b/DDG4/src/Geant4Random.cpp index c0fce221f4d842f5fe012f5487581b14461d253a..769193cfc3dd961b28665dc164d7a28a3a6d199c 100644 --- a/DDG4/src/Geant4Random.cpp +++ b/DDG4/src/Geant4Random.cpp @@ -54,6 +54,11 @@ namespace { fSeed = seed; m_generator->setSeed((long)seed); } + /// Set new seed + virtual void SetSeed(ULong_t seed=0) { + fSeed = seed; + m_generator->setSeed((long)seed); + } /// Single shot random number creation virtual Double_t Rndm(Int_t) { return m_engine->flat(); diff --git a/DDRec/include/DDRec/Material.h b/DDRec/include/DDRec/Material.h index 8c6bd7b1d890245249531c7141b9e6635db5c3f2..ecdd3abc8b01591b9f26b09ae491b4a9eaf513b6 100644 --- a/DDRec/include/DDRec/Material.h +++ b/DDRec/include/DDRec/Material.h @@ -87,14 +87,14 @@ namespace DD4hep { /// assignment from Geometry::Material MaterialData& operator=(const IMaterial& m){ - - _name = m.name() ; - _Z = m.Z() ; - _A = m.A() ; - _rho = m.density() ; - _x0 = m.radiationLength() ; - _lambda = m.interactionLength() ; - + if ( this != &m ) { + _name = m.name() ; + _Z = m.Z() ; + _A = m.A() ; + _rho = m.density() ; + _x0 = m.radiationLength() ; + _lambda = m.interactionLength() ; + } return *this ; } diff --git a/DDSurfaces/include/DDSurfaces/IMaterial.h b/DDSurfaces/include/DDSurfaces/IMaterial.h index ade46aba515f5d0908b00e24c694b3f67e3827a0..40e75521ba40464bab6a9dff7d25be60b6083519 100644 --- a/DDSurfaces/include/DDSurfaces/IMaterial.h +++ b/DDSurfaces/include/DDSurfaces/IMaterial.h @@ -14,12 +14,16 @@ namespace DDSurfaces { */ class IMaterial { + + protected: + /// Assignment operator + IMaterial& operator=(const IMaterial&) { return *this; } public: /// Destructor virtual ~IMaterial() {} - + /// material name virtual std::string name() const =0 ;