00001 #ifndef Forward_CastorNumberingScheme_h
00002 #define Forward_CastorNumberingScheme_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "G4Step.hh"
00028 #include <boost/cstdint.hpp>
00029
00030 class CastorNumberingScheme {
00031
00032 public:
00033
00034 CastorNumberingScheme();
00035 virtual ~CastorNumberingScheme();
00036
00037 virtual uint32_t getUnitID(const G4Step* aStep) const;
00038
00048
00049
00050
00051
00052 static uint32_t packIndex(int z, int sector, int zmodule);
00053 static void unpackIndex(const uint32_t& idx, int& z, int& sector, int& zmodule);
00054
00055
00056 int detectorLevel(const G4Step*) const;
00057 void detectorLevel(const G4Step*, int&, int*, G4String*) const;
00058
00059 private:
00060
00061 int zsideScale;
00062 int sectorScale;
00063
00064 };
00065
00066 #endif