Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:31

0001 #pragma once
0002 
0003 #include <string>
0004 #include <iomanip>
0005 #include <sstream>
0006 
0007 #include "G4MultiUnion.hh"
0008 
0009 struct U4MultiUnion
0010 {
0011     static std::string Desc(const G4MultiUnion* solid);
0012 };
0013 
0014 inline std::string U4MultiUnion::Desc(const G4MultiUnion* solid) // static
0015 {
0016     G4String name = solid->GetName() ; // bizarre: G4VSolid::GetName returns by value, not reference
0017     unsigned sub_num = solid->GetNumberOfSolids() ;
0018 
0019     std::stringstream ss ;
0020     ss
0021        << "[U4MultiUnion::Desc\n"
0022        << " name " << name << "\n"
0023        << " sub_num " << sub_num << "\n"
0024        ;
0025 
0026     for( unsigned i=0 ; i < sub_num ; i++)
0027     {
0028         const G4VSolid* sub = solid->GetSolid(i);
0029         G4String sub_name = sub->GetName() ;
0030         ss << std::setw(4) << i << " : " << sub_name << "\n" ;
0031     }
0032     ss << "]U4MultiUnion::Desc\n" ;
0033     std::string str = ss.str() ;
0034     return str ;
0035 }
0036 
0037 
0038