diff --git a/DDCAD/src/ASSIMPReader.cpp b/DDCAD/src/ASSIMPReader.cpp index d4793bf20de8a5d8fcfbcc8b65b11c2a3a1c7ace..7d0c7e25bd78a5db8c0088bc93b77c191871518f 100644 --- a/DDCAD/src/ASSIMPReader.cpp +++ b/DDCAD/src/ASSIMPReader.cpp @@ -61,7 +61,7 @@ ASSIMPReader::readShapes(const std::string& source, double unit_length) const } } printout(ALWAYS,"ASSIMPReader","+++ Read %ld meshes from %s", - result.size(), source.c_str()); + result.size(), source.c_str()); return result; } @@ -95,48 +95,48 @@ ASSIMPReader::readVolumes(const std::string& source, double unit_length) const shape->AddFacet(a,b,c); } if ( shape->GetNfacets() > 2 ) { - std::string nam; - Material mat; - VisAttr vis; + std::string nam; + Material mat; + VisAttr vis; if ( scene->HasMaterials() ) { aiMaterial* ai_mat = scene->mMaterials[mesh->mMaterialIndex]; - nam = ai_mat->GetName().C_Str(); - mat = detector.material(nam); + nam = ai_mat->GetName().C_Str(); + mat = detector.material(nam); } - if ( !mat.isValid() ) { - printout(ERROR, "ASSIMPReader", - "+++ %s: No material named '%s' FOUND. Will use Air. [Missing material]", - text, nam.c_str()); - mat = detector.air(); - } - ::snprintf(text,sizeof(text),"tessellated_%ld", result.size()); - text[sizeof(text)-1] = 0; - Volume vol(text, Solid(shape.ptr()), mat); - if ( mesh->HasVertexColors(0) ) { - const aiColor4D* col = mesh->mColors[0]; - if ( col ) { - for( const auto& _v : detector.visAttributes() ) { - float a, r, g, b, eps = 0.05; - VisAttr(_v.second).argb(a, r, g, b); - if( std::abs(col->a-a) < eps && std::abs(col->r-r) < eps && - std::abs(col->g-g) < eps && std::abs(col->b-b) < eps ) { - vis = _v.second; - break; - } - } - if ( !vis.isValid() ) { - ::snprintf(text,sizeof(text),"vis_tessellated_%p", (void*)vol.ptr()); - text[sizeof(text)-1] = 0; - vis = VisAttr(text); - vis.setColor(col->a,col->r,col->g,col->b); - detector.add(vis); - } - vol.setVisAttributes(vis); - } - } - printout(INFO,"ASSIMPReader", - "+++ %-17s Material: %-16s Viualization: %s", - vol.name(), mat.name(), vis.isValid() ? vis.name() : "NONE"); + if ( !mat.isValid() ) { + printout(ERROR, "ASSIMPReader", + "+++ %s: No material named '%s' FOUND. Will use Air. [Missing material]", + text, nam.c_str()); + mat = detector.air(); + } + ::snprintf(text,sizeof(text),"tessellated_%ld", result.size()); + text[sizeof(text)-1] = 0; + Volume vol(text, Solid(shape.ptr()), mat); + if ( mesh->HasVertexColors(0) ) { + const aiColor4D* col = mesh->mColors[0]; + if ( col ) { + for( const auto& _v : detector.visAttributes() ) { + float ca, cr, cg, cb, eps = 0.05; + VisAttr(_v.second).argb(ca, cr, cg, cb); + if( std::abs(col->a-ca) < eps && std::abs(col->r-cr) < eps && + std::abs(col->g-cg) < eps && std::abs(col->b-cb) < eps ) { + vis = _v.second; + break; + } + } + if ( !vis.isValid() ) { + ::snprintf(text,sizeof(text),"vis_tessellated_%p", (void*)vol.ptr()); + text[sizeof(text)-1] = 0; + vis = VisAttr(text); + vis.setColor(col->a,col->r,col->g,col->b); + detector.add(vis); + } + vol.setVisAttributes(vis); + } + } + printout(INFO,"ASSIMPReader", + "+++ %-17s Material: %-16s Viualization: %s", + vol.name(), mat.name(), vis.isValid() ? vis.name() : "NONE"); result.emplace_back(std::unique_ptr<TGeoVolume>(vol.ptr())); continue; } @@ -144,6 +144,6 @@ ASSIMPReader::readVolumes(const std::string& source, double unit_length) const } } printout(ALWAYS,"ASSIMPReader","+++ Read %ld meshes from %s", - result.size(), source.c_str()); + result.size(), source.c_str()); return result; } diff --git a/DDCAD/src/ASSIMPWriter.cpp b/DDCAD/src/ASSIMPWriter.cpp index c4b8fd14135af7bf49ae492b8f111509039c77ae..85ac143bee2c1324f1fb3da9bad801c11a914d11 100644 --- a/DDCAD/src/ASSIMPWriter.cpp +++ b/DDCAD/src/ASSIMPWriter.cpp @@ -126,7 +126,6 @@ namespace { return tes; } - struct TessellateComposite { TBuffer3D buffer { TBuffer3DTypes::kComposite }; std::vector<unique_ptr<TGeoTessellated> > meshes; @@ -137,7 +136,7 @@ namespace { if (TGeoCompositeShape *shape = dynamic_cast<TGeoCompositeShape *>(s)) collect_composite(shape); else - meshes.push_back(move(_tessellate_primitive(s->GetName(),s))); + meshes.emplace_back(_tessellate_primitive(s->GetName(),s)); } void collect_composite(TGeoCompositeShape* sh) { TGeoBoolNode* node = sh->GetBoolNode(); @@ -242,9 +241,9 @@ int ASSIMPWriter::write(const std::string& file_name, mesh->mName = node_name; mesh->mMaterialIndex = index; if ( v.visAttributes().isValid() ) { - float r = 0e0, g = 0e0, b = 0e0, a = 0e0; - v.visAttributes().argb(a, r, g, b); - mesh->mColors[0] = new aiColor4D(r, g, b, a); + float cr = 0e0, cg = 0e0, cb = 0e0, ca = 0e0; + v.visAttributes().argb(ca, cr, cg, cb); + mesh->mColors[0] = new aiColor4D(cr, cg, cb, ca); } mesh->mFaces = new aiFace[tes->GetNfacets()]; mesh->mVertices = new aiVector3D[num_vert]; diff --git a/DDG4/src/Geant4ParticleHandler.cpp b/DDG4/src/Geant4ParticleHandler.cpp index b725d3d40f224a0a7d3d9ed338b321e4c6e1e455..82a4b70259590a8581070f1d7c9a50262efffebe 100644 --- a/DDG4/src/Geant4ParticleHandler.cpp +++ b/DDG4/src/Geant4ParticleHandler.cpp @@ -490,8 +490,7 @@ void Geant4ParticleHandler::rebaseSimulatedTracks(int ) { // Processing by Geant4 to establish mother daughter relationships. // == > use finalParticles map and NOT m_particleMap. int equiv_id = -1; - for(iend=finalParticles.end(), i=finalParticles.begin(); i!=iend; ++i) { - Particle* p = (*i).second; + for( auto& [idx, p] : finalParticles ) { if ( p->g4Parent > 0 ) { TrackEquivalents::iterator iequ = equivalents.find(p->g4Parent); if ( iequ != equivalents.end() ) { @@ -657,7 +656,7 @@ void Geant4ParticleHandler::checkConsistency() const { int num_errors = 0; /// First check the consistency of the particle map itself - for(const auto [idx, particle] : m_particleMap ) { + for(const auto& [idx, particle] : m_particleMap ) { Geant4ParticleHandle p(particle); PropertyMask mask(p->reason); PropertyMask status(p->status); @@ -699,22 +698,15 @@ void Geant4ParticleHandler::checkConsistency() const { } void Geant4ParticleHandler::setVertexEndpointBit() { - - ParticleMap& pm = m_particleMap; - ParticleMap::const_iterator iend, i; - for(iend=pm.end(), i=pm.begin(); i!=iend; ++i) { - Particle* p = (*i).second; - - if( p->parents.empty() ) { - continue; - } - Geant4Particle *parent(pm[ *p->parents.begin() ]); - const double X( parent->vex - p->vsx ); - const double Y( parent->vey - p->vsy ); - const double Z( parent->vez - p->vsz ); - if( sqrt(X*X + Y*Y + Z*Z) > m_minDistToParentVertex ){ - PropertyMask(p->status).set(G4PARTICLE_SIM_PARENT_RADIATED); + for( auto& [idx, p] : m_particleMap ) { + if( !p->parents.empty() ) { + Geant4Particle *parent(m_particleMap[ *p->parents.begin() ]); + const double X( parent->vex - p->vsx ); + const double Y( parent->vey - p->vsy ); + const double Z( parent->vez - p->vsz ); + if( sqrt(X*X + Y*Y + Z*Z) > m_minDistToParentVertex ){ + PropertyMask(p->status).set(G4PARTICLE_SIM_PARENT_RADIATED); + } } } - } diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake index 5ba040ccd60b799bc6f620139121dd03890ffe97..33d0478997a22b2d723e242bebf6a8734a3a478e 100644 --- a/cmake/DD4hepBuild.cmake +++ b/cmake/DD4hepBuild.cmake @@ -25,11 +25,7 @@ macro(dd4hep_to_parent_scope val) endmacro(dd4hep_to_parent_scope) #--------------------------------------------------------------------------------------------------- macro(dd4hep_use_python_executable) - #find_package(Python) - #if("${Python_EXECUTABLE}" STREQUAL "") - # set (Python_EXECUTABLE python) - #endif() - dd4hep_print("|++> Using python executable: ${Python_EXECUTABLE} -- ${PYTHON_EXECUTABLE}") + dd4hep_print("|++> Using python executable: ${Python_EXECUTABLE}") endmacro(dd4hep_use_python_executable) #--------------------------------------------------------------------------------------------------- # MACRO: dd4hep_set_compiler_flags @@ -692,13 +688,15 @@ macro(DD4HEP_SETUP_ROOT_TARGETS) dd4hep_debug("D++> Python version used for building ROOT ${ROOT_PYTHON_VERSION}" ) dd4hep_debug("D++> Required python version ${REQUIRE_PYTHON_VERSION}") FIND_PACKAGE(Python ${REQUIRE_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Development) + FIND_PACKAGE(Python ${REQUIRE_PYTHON_VERSION} EXACT QUIET COMPONENTS Interpreter) ELSE() FIND_PACKAGE(Python COMPONENTS Development) + FIND_PACKAGE(Python QUIET COMPONENTS Interpreter) ENDIF() IF("${Python_EXECUTABLE}" STREQUAL "") set (Python_EXECUTABLE python${Python_VERSION_MAJOR}) ENDIF() - dd4hep_print("|++> Using python executable: ${Python_EXECUTABLE} -- ${PYTHON_EXECUTABLE}") + dd4hep_print("|++> Using python executable: ${Python_EXECUTABLE}") SET(DD4HEP_PYTHON_INSTALL_DIR lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages)