Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // Nav_Story is G4
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