00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: Dengzy 00006 //Created: Mar, 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // $Id: BesTofSD.hh 00011 00012 00013 #ifndef BesTofSD_h 00014 #define BesTofSD_h 1 00015 00016 #include "BesSensitiveDetector.hh" 00017 #include "BesTofHit.hh" 00018 #include <vector> 00019 using namespace std; 00020 00021 class BesSensitiveManager; 00022 class G4Step; 00023 class G4HCofThisEvent; 00024 class G4Event; 00025 class G4ElectronIonPair; 00026 00027 00028 class BesTofSD : public BesSensitiveDetector 00029 { 00030 public: 00031 BesTofSD(G4String name); 00032 virtual ~BesTofSD(); 00033 00034 virtual void Initialize(G4HCofThisEvent* HCE); 00035 virtual G4bool ProcessHits(G4Step* aStep,G4TouchableHistory*); 00036 virtual void EndOfEvent(G4HCofThisEvent* HCE); 00037 00038 void BeginOfTruthEvent(const G4Event*); 00039 void EndOfTruthEvent(const G4Event*); 00040 00041 G4int SampleNumberOfIonsAlongStep(const G4Step* , G4ElectronIonPair *); 00042 00043 private: 00044 BesTofHitsCollection* m_besTofCollection; 00045 BesTofHitsCollection* m_besTofList; 00046 G4int m_trackIndex; 00047 vector<G4int> m_trackIndexes; 00048 vector<int> m_scinIndex; 00049 G4ElectronIonPair* elIonPair; 00050 G4double m_event; 00051 }; 00052 00053 00054 #endif 00055