File indexing completed on 2026-06-14 07:54:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef RE01TrackerHit_h
0030 #define RE01TrackerHit_h 1
0031
0032 #include "G4Allocator.hh"
0033 #include "G4THitsCollection.hh"
0034 #include "G4ThreeVector.hh"
0035 #include "G4Types.hh"
0036 #include "G4VHit.hh"
0037
0038 class G4AttDef;
0039 class G4AttValue;
0040
0041 class RE01TrackerHit : public G4VHit
0042 {
0043 public:
0044 RE01TrackerHit();
0045 virtual ~RE01TrackerHit();
0046
0047 inline void* operator new(size_t);
0048 inline void operator delete(void* aHit);
0049
0050 virtual void Draw();
0051 virtual void Print();
0052 virtual const std::map<G4String, G4AttDef>* GetAttDefs() const;
0053 virtual std::vector<G4AttValue>* CreateAttValues() const;
0054
0055 public:
0056 inline void SetEdep(G4double de) { fEdep = de; }
0057 inline G4double GetEdep() const { return fEdep; }
0058 inline void SetPos(G4ThreeVector xyz) { fPos = xyz; }
0059 inline void SetTrackID(G4int i) { fTrackID = i; }
0060 inline G4int GetTrackID() const { return fTrackID; }
0061
0062 private:
0063 G4double fEdep;
0064 G4ThreeVector fPos;
0065 G4int fTrackID;
0066 };
0067
0068 typedef G4THitsCollection<RE01TrackerHit> RE01TrackerHitsCollection;
0069
0070 extern G4ThreadLocal G4Allocator<RE01TrackerHit>* RE01TrackerHitAllocator;
0071
0072 inline void* RE01TrackerHit::operator new(size_t)
0073 {
0074 if (!RE01TrackerHitAllocator) RE01TrackerHitAllocator = new G4Allocator<RE01TrackerHit>;
0075 return (void*)RE01TrackerHitAllocator->MallocSingle();
0076 }
0077
0078 inline void RE01TrackerHit::operator delete(void* aHit)
0079 {
0080 RE01TrackerHitAllocator->FreeSingle((RE01TrackerHit*)aHit);
0081 }
0082
0083 #endif