File indexing completed on 2024-04-06 12:30:13
0001 #ifndef SimG4CMS_TrackerG4SimHitNumberingScheme_H
0002 #define SimG4CMS_TrackerG4SimHitNumberingScheme_H
0003
0004 #include <vector>
0005 #include <map>
0006 #include <string>
0007 #include <G4VTouchable.hh>
0008
0009 class G4VPhysicalVolume;
0010 class GeometricDet;
0011
0012 class TrackerG4SimHitNumberingScheme {
0013 public:
0014
0015 using Nav_Story = std::vector<std::pair<int, std::string> >;
0016 using DirectMapType = std::map<Nav_Story, unsigned int>;
0017
0018 explicit TrackerG4SimHitNumberingScheme(const GeometricDet&);
0019
0020 unsigned int g4ToNumberingScheme(const G4VTouchable*);
0021
0022 private:
0023 void touchToNavStory(const G4VTouchable*, Nav_Story&);
0024 void dumpG4VPV(const G4VTouchable*);
0025
0026 void buildAll();
0027
0028 DirectMapType directMap_;
0029 bool alreadySet_;
0030 const GeometricDet* geomDet_;
0031 };
0032
0033 #endif