From 0170533c89a77c5514140ffd222fe49276e231de Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Fri, 2 Dec 2022 16:54:01 +0100 Subject: [PATCH] Add dimps for detector components --- DDCore/src/plugins/DetectorChecksum.cpp | 40 +++++++++++++++---------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/DDCore/src/plugins/DetectorChecksum.cpp b/DDCore/src/plugins/DetectorChecksum.cpp index 2e88dc4c7..c5fcfd411 100644 --- a/DDCore/src/plugins/DetectorChecksum.cpp +++ b/DDCore/src/plugins/DetectorChecksum.cpp @@ -1322,7 +1322,15 @@ static long create_checksum(Detector& description, int argc, char** argv) { wr.debug = debug; wr.configure(); + bool make_dump = false; + if ( dump_elements || dump_materials || dump_solids || + dump_volumes || dump_placements || dump_detelements || + dump_sensitives || dump_iddesc || dump_segmentations ) { + make_dump = true; + wr.debug = 0; + } DetectorChecksum::hashes_t hash_vec; + DetectorChecksum::hash_t checksum = 0; if ( !detectors.empty() ) { for (const auto& det : detectors ) { de = detail::tools::findElement(description,det); @@ -1333,36 +1341,36 @@ static long create_checksum(Detector& description, int argc, char** argv) { std::cout << wr.debug_hash.str() << std::endl; wr.debug_hash.str(""); } - auto checksum = detail::hash64(&hash_vec[0], hash_vec.size()*sizeof(DetectorChecksum::hash_t)); + checksum = detail::hash64(&hash_vec[0], hash_vec.size()*sizeof(DetectorChecksum::hash_t)); printout(ALWAYS,"DetectorChecksum","+++ Checksum for %s 0x%016lx", de.path().c_str(), checksum); + if ( make_dump ) goto MakeDump; } return 1; } - if ( dump_elements || dump_materials || dump_solids || dump_volumes || dump_placements || dump_detelements ) - wr.debug = 0; - else if ( dump_sensitives || dump_iddesc || dump_segmentations ) - wr.debug = 0; wr.analyzeDetector(de); hash_vec.push_back(wr.handleHeader().hash); wr.checksumDetElement(0, description.world(), hash_vec, true); - auto checksum = detail::hash64(&hash_vec[0], hash_vec.size()*sizeof(DetectorChecksum::hash_t)); + checksum = detail::hash64(&hash_vec[0], hash_vec.size()*sizeof(DetectorChecksum::hash_t)); if ( wr.debug > 2 ) std::cout << wr.debug_hash.str() << std::endl; printout(ALWAYS,"DetectorChecksum","+++ Checksum for %s 0x%016lx", de.path().c_str(), checksum); - wr.debug = debug; - if ( dump_elements ) wr.dump_elements(); - if ( dump_materials ) wr.dump_materials(); - if ( dump_solids ) wr.dump_solids(); - if ( dump_volumes ) wr.dump_volumes(); - if ( dump_placements ) wr.dump_placements(); - if ( dump_detelements ) wr.dump_detelements(); - if ( dump_sensitives ) wr.dump_sensitives(); - if ( dump_segmentations ) wr.dump_segmentations(); - if ( dump_iddesc ) wr.dump_iddescriptors(); + MakeDump: + if ( make_dump ) { + wr.debug = debug; + if ( dump_elements ) wr.dump_elements(); + if ( dump_materials ) wr.dump_materials(); + if ( dump_solids ) wr.dump_solids(); + if ( dump_volumes ) wr.dump_volumes(); + if ( dump_placements ) wr.dump_placements(); + if ( dump_detelements ) wr.dump_detelements(); + if ( dump_sensitives ) wr.dump_sensitives(); + if ( dump_segmentations ) wr.dump_segmentations(); + if ( dump_iddesc ) wr.dump_iddescriptors(); + } return 1; } -- GitLab