00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: Sensitive detector of Muc 00005 //Author: Youzy Peking University mail: youzy@hep.pku.cn 00006 //Created: Nov, 2003 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // 00011 // 00012 // $Id: BesMucSD.hh,v 1.5 2009/08/25 13:33:54 xieyg Exp $ 00013 // GEANT4 tag $Name: MucSim-00-01-03 $ 00014 // 00015 00016 #ifndef BesMucSD_h 00017 #define BesMucSD_h 1 00018 00019 #include "G4Event.hh" 00020 #include "G4TrajectoryContainer.hh" 00021 #include "BesSensitiveDetector.hh" 00022 #include "BesMucHit.hh" 00023 #include "BesMucConstruction.hh" 00024 #include <vector> 00025 #include "BesMucEfficiency.hh" 00026 #include "BesMucNoise.hh" 00027 00028 using namespace std; 00029 00030 class G4Step; 00031 class G4HCofThisEvent; 00032 class G4Svc; 00033 00034 class BesMucSD : public BesSensitiveDetector 00035 { 00036 public: 00037 BesMucSD(G4String, BesMucConstruction*); 00038 ~BesMucSD(); 00039 00040 void Initialize(G4HCofThisEvent*); 00041 G4bool ProcessHits(G4Step*, G4TouchableHistory*); 00042 void EndOfEvent(G4HCofThisEvent*); 00043 void BeginOfTruthEvent(const G4Event*); 00044 void EndOfTruthEvent(const G4Event*); 00045 00046 private: 00047 00048 G4Svc* m_G4Svc; 00049 00050 G4VTrajectory* GetTrajFromID(G4int id); 00051 bool IsChildOf(G4Track *curTrack, G4int primaryG4TrackID); 00052 00053 BesMucHitsCollection* MucHitCollection; 00054 BesMucHitsCollection* MucHitList; 00055 G4int m_trackIndex; 00056 vector<G4int> m_trackIndexes; 00057 G4int m_prePart, m_preSeg, m_preGap, m_preStrip; 00058 BesMucConstruction* detector; 00059 G4int* HitID; 00060 G4double TotEneDeposit; 00061 G4double DeltaEnergy; 00062 00063 G4int m_PreviousPrimaryTrackG4Id; 00064 const G4Event* m_CurEvent; 00065 G4TrajectoryContainer* m_TrackCon; 00066 00067 BesMucEfficiency* m_effi; 00068 BesMucNoise* m_noise; 00069 int m_noiseMode; //0-no; 1-cnt sampling; 2-noise ratio sampling; 00070 00071 }; 00072 00073 #endif 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085