File indexing completed on 2024-04-06 12:29:47
0001 #ifndef SimG4CMS_Calo_EcalDumpGeometry_H
0002 #define SimG4CMS_Calo_EcalDumpGeometry_H
0003 #include "Geometry/EcalCommonData/interface/EcalBarrelNumberingScheme.h"
0004 #include "Geometry/EcalCommonData/interface/EcalBaseNumber.h"
0005 #include "Geometry/EcalCommonData/interface/EcalEndcapNumberingScheme.h"
0006 #include "Geometry/EcalCommonData/interface/EcalPreshowerNumberingScheme.h"
0007 #include "SimG4CMS/Calo/interface/CaloDetInfo.h"
0008
0009 #include "G4Box.hh"
0010 #include "G4LogicalVolumeStore.hh"
0011 #include "G4PhysicalVolumeStore.hh"
0012 #include "G4Run.hh"
0013 #include "G4TransportationManager.hh"
0014 #include "G4Trap.hh"
0015 #include "G4LogicalVolume.hh"
0016 #include "G4VPhysicalVolume.hh"
0017 #include "G4VSolid.hh"
0018
0019 #include <string>
0020 #include <vector>
0021
0022 class EcalDumpGeometry {
0023 public:
0024 explicit EcalDumpGeometry(const std::vector<std::string_view> &, const std::string &, const std::string &, int);
0025 ~EcalDumpGeometry() = default;
0026
0027 void update();
0028
0029 private:
0030 void dumpTouch(G4VPhysicalVolume *pv, unsigned int leafDepth);
0031 std::string noRefl(const std::string &name);
0032
0033 const std::string name1_, name2_;
0034 EcalBarrelNumberingScheme ebNumbering_;
0035 EcalEndcapNumberingScheme eeNumbering_;
0036 EcalPreshowerNumberingScheme esNumbering_;
0037 std::vector<std::string> names_;
0038 int type_;
0039 G4NavigationHistory fHistory_;
0040 std::vector<CaloDetInfo> infoVec_;
0041 };
0042 #endif