00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oreiented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Descpirtion: EMC detector 00005 //Author: Fu Chengdong 00006 //Created: Sep 4, 2003 00007 //Comment: 00008 //---------------------------------------------------------------------------// 00009 // 00010 #ifndef BesEmcSD_h 00011 #define BesEmcSD_h 1 00012 00013 #include "BesSensitiveDetector.hh" 00014 #include "BesEmcHit.hh" 00015 #include "globals.hh" 00016 #include <vector> 00017 using namespace std; 00018 00019 class BesEmcConstruction; 00020 class BesEmcGeometry; 00021 class BesSensitiveManager; 00022 class G4HCofThisEvent; 00023 class G4Step; 00024 00025 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 00026 00027 class BesEmcSD : public BesSensitiveDetector 00028 { 00029 public: 00030 00031 BesEmcSD(G4String, BesEmcConstruction*, BesEmcGeometry*); 00032 ~BesEmcSD(); 00033 00034 void Initialize(G4HCofThisEvent*); 00035 G4bool ProcessHits(G4Step*,G4TouchableHistory*); 00036 void EndOfEvent(G4HCofThisEvent*); 00037 void clear(); 00038 void DrawAll(); 00039 void PrintAll(); 00040 void BeginOfTruthEvent(const G4Event*); 00041 void EndOfTruthEvent(const G4Event*); 00042 void ComputeThetaPhi(G4int,G4int,G4int); 00043 G4int EndPhiNumberForGDML(G4int); 00044 G4int ComputeEndCopyNb(G4int); 00045 00046 private: 00047 00048 BesEmcHitsCollection* CalCollection; 00049 BesEmcTruthHitsCollection* CalTruthList; 00050 BesEmcHitsCollection* CalList; 00051 BesEmcConstruction* Detector; 00052 BesEmcGeometry* fBesEmcGeometry; 00053 G4int* HitID; 00054 G4int nHit; 00055 G4int m_trackIndex; 00056 G4int PartId; 00057 G4int CryNumberTheta; 00058 G4int CryNumberPhi; 00059 }; 00060 00061 #endif