00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: Youzy 00006 //Created: Mar, 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // $Id: BesMucDigitizer.hh 00011 00012 #ifndef BesMucDigitizer_h 00013 #define BesMucDigitizer_h 1 00014 00015 #include "GaudiKernel/NTuple.h" 00016 00017 #include "G4VDigitizerModule.hh" 00018 #include "BesMucDigi.hh" 00019 #include "globals.hh" 00020 00021 class G4Svc; 00022 00023 class BesMucDigitizer : public G4VDigitizerModule 00024 { 00025 public: 00026 BesMucDigitizer(G4String modName); 00027 ~BesMucDigitizer(); 00028 00029 //necessary digi collection object must be constructed and set to 00030 //G4DCofThisEvent by StoreDigiCollection protected method. 00031 virtual void Digitize(); 00032 00033 private: 00034 void Initialize(); 00035 void NewDigi(G4int trackIndex, G4int part, G4int seg, G4int layer, G4int strip); 00036 void OldDigi(); 00037 void Smear(); 00038 00039 private: 00040 BesMucDigisCollection* m_besMucDigisCollection; 00041 00042 static const G4int m_nPartMax = 3; 00043 static const G4int m_nSegMax = 8; 00044 static const G4int m_nGapMax = 9; 00045 static const G4int m_nStripMax = 112; 00046 G4int m_stripID[m_nPartMax][m_nSegMax][m_nGapMax][m_nStripMax]; 00047 00048 G4Svc* m_G4Svc; 00049 00050 NTuple::Tuple* m_tupleMuc; 00051 NTuple::Item<double> m_part; 00052 NTuple::Item<double> m_seg; 00053 NTuple::Item<double> m_gap; 00054 NTuple::Item<double> m_strip; 00055 00056 }; 00057 00058 00059 #endif 00060