Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:59

0001 #ifndef SimG4CMSForwardZdcNumberingScheme_h
0002 #define SimG4CMSForwardZdcNumberingScheme_h
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: ZdcNumberingScheme.h
0005 // Date: 03.06
0006 // Description: Numbering scheme for Zdc
0007 // Modifications:
0008 ///////////////////////////////////////////////////////////////////////////////
0009 #include <vector>
0010 #include "G4Step.hh"
0011 
0012 class ZdcNumberingScheme {
0013 public:
0014   ZdcNumberingScheme(int);
0015   ~ZdcNumberingScheme() = default;
0016 
0017   void setVerbosity(const int);
0018 
0019   unsigned int getUnitID(const G4Step* aStep);
0020 
0021   /** pack the Unit ID for Zdc <br>
0022    *  z = 1,2 = -z,+z; subDet = 1,2,3 = EM,Lum,HAD; fiber = 1-96 (EM,HAD), 1 (Lum);
0023    *  channel = 1-5 (EM), layer# (Lum), 1-3 (HAD)
0024    */
0025   static unsigned int packZdcIndex(int subDet, int layer, int fiber, int channel, int z);
0026 
0027   // unpacking Unit ID for Zdc (-z=1, +z=2)
0028   static void unpackZdcIndex(const unsigned int& idx, int& subDet, int& layer, int& fiber, int& channel, int& z);
0029 
0030   int detectorLevel(const G4Step*);
0031   void detectorLevel(const G4Step*, int&, std::vector<int>&, std::vector<G4String>&);
0032 
0033 private:
0034   int verbosity;
0035 };
0036 
0037 #endif