00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef GLG4BOXSD_h
00019 #define GLG4BOXSD_h 1
00020
00021 #include "G4VSensitiveDetector.hh"
00022 #include "G4Timer.hh"
00023
00024 class G4Step;
00025 class G4HCofThisEvent;
00026 class G4TouchableHistory;
00027
00028 class GLG4BoxSD : public G4VSensitiveDetector
00029 {
00030 public:
00031
00032 GLG4BoxSD(G4String name);
00033 virtual ~GLG4BoxSD();
00034
00035 virtual void Initialize(G4HCofThisEvent*HCE);
00036 virtual void EndOfEvent(G4HCofThisEvent*HCE);
00037 virtual void clear();
00038 virtual void DrawAll();
00039 virtual void PrintAll();
00040
00041 void SetZ0( G4double newZ0 ) { z0= newZ0; }
00042 void SetRadLength( G4double newRadLength ) { radLength= newRadLength; }
00043 void SetECut( G4double e ) { eCut= e; }
00044 void SetGCut( G4double e ) { gCut= e; }
00045 G4double GetZ0() { return z0; }
00046 G4double GetRadLength() { return radLength; }
00047 G4double GetECut() { return eCut; }
00048 G4double GetGCut() { return gCut; }
00049
00050 protected:
00051 G4double eCut;
00052 G4double gCut;
00053 G4double radLength;
00054 G4double z0;
00055 enum {nbin= 40};
00056 G4double tot_edep;
00057 G4double h_edep[nbin];
00058 G4int h_ng[nbin], h_ne[nbin];
00059 virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
00060 };
00061
00062
00063
00064
00065 #endif