15 : name1_(name1), name2_(
name2), type_(
type) {
17 for (
const auto& lvname :
names)
20 <<
" LVs: " <<
ss.str() << G4endl;
24 names_.emplace_back(namex);
26 G4cout <<
"EcalDumpGeometry:: dump geometry information for detector of type " <<
type_ <<
" with " <<
names_.size()
27 <<
" elements:" << G4endl;
28 for (
unsigned int k = 0;
k <
names_.size(); ++
k)
33 G4VPhysicalVolume* theTopPV =
34 G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume();
35 G4cout <<
"EcalDumpGeometry entered with entry of top PV at " << theTopPV << G4endl;
39 G4cout <<
"EcalDumpGeometry finds " <<
infoVec_.size() <<
" touchables" << G4endl;
44 if (
info.flag() && (
info.solid() !=
nullptr)) {
45 info.solid()->DumpInfo();
58 G4ThreeVector globalpoint =
fHistory_.GetTopTransform().Inverse().TransformPoint(G4ThreeVector(0, 0, 0));
59 G4LogicalVolume* lv =
pv->GetLogicalVolume();
65 for (
unsigned int k = 0;
k <
names_.size(); ++
k) {
70 theBaseNumber.
reset();
72 theBaseNumber.
setSize(theSize + 1);
74 for (
int ii = theSize;
ii >= 0; --
ii) {
87 double r = globalpoint.rho();
88 G4cout <<
" Field: " <<
ss.str() <<
" ID " << std::hex <<
id <<
std::dec <<
":" <<
depth <<
":" <<
r << G4endl;
89 G4VSolid* solid = (lv->GetSolid());
90 if (((
type_ / 100) % 10) != 0)
99 int NoDaughters = lv->GetNoDaughters();
100 while ((NoDaughters--) > 0) {
101 G4VPhysicalVolume* pvD = lv->GetDaughter(NoDaughters);
102 if (!pvD->IsReplicated())
111 if (
name.find(
"_refl") == std::string::npos) {
114 size_t n =
name.size();
115 return name.substr(0,
n - 5);
std::string noRefl(const std::string &name)
EcalPreshowerNumberingScheme esNumbering_
EcalDumpGeometry(const std::vector< std::string_view > &, const std::string &, const std::string &, int)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
const std::string names[nVars_]
void addLevel(const std::string &name, const int ©Number)
uint32_t getUnitID(const EcalBaseNumber &baseNumber) const override
uint32_t getUnitID(const EcalBaseNumber &baseNumber) const override
void dumpTouch(G4VPhysicalVolume *pv, unsigned int leafDepth)
std::vector< CaloDetInfo > infoVec_
std::vector< std::string > names_
EcalEndcapNumberingScheme eeNumbering_
G4NavigationHistory fHistory_
uint32_t getUnitID(const EcalBaseNumber &baseNumber) const override
EcalBarrelNumberingScheme ebNumbering_
std::string noNameSpace(const std::string &name)
void setSize(const int &size)