00001
00002
00003
00004
00005
00007 #ifndef FP420NumberingScheme_h
00008 #define FP420NumberingScheme_h
00009
00010 #include "G4Step.hh"
00011 #include <boost/cstdint.hpp>
00012 #include "G4ThreeVector.hh"
00013 #include <map>
00014
00015
00016
00017
00018 class FP420NumberingScheme {
00019
00020 public:
00021 FP420NumberingScheme();
00022 virtual ~FP420NumberingScheme();
00023
00024 virtual unsigned int getUnitID(const G4Step* aStep) const;
00025
00026
00027 virtual int detectorLevel(const G4Step*) const;
00028 virtual void detectorLevel(const G4Step*, int&, int*, G4String*) const;
00029
00030
00031
00032
00033 static unsigned int packFP420Index(int det, int zside, int station,int plane);
00034
00035 static void unpackFP420Index(const unsigned int& idx, int& det, int& zside, int& station,int& plane);
00036
00037
00038
00039
00040
00041
00042 };
00043
00044 #endif