00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: Yuan Ye(yuany@mail.ihep.ac.cn) 00006 //Created: Oct.26, 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 00011 #ifndef BesMdcDigi_h 00012 #define BesMdcDigi_h 1 00013 00014 #include "G4VDigi.hh" 00015 #include "G4TDigiCollection.hh" 00016 #include "G4Allocator.hh" 00017 #include "G4ThreeVector.hh" 00018 00019 class BesMdcDigi : public G4VDigi 00020 { 00021 public: 00022 BesMdcDigi(); 00023 virtual ~BesMdcDigi(); 00024 00025 BesMdcDigi(const BesMdcDigi&); 00026 const BesMdcDigi& operator=(const BesMdcDigi&); 00027 00028 virtual G4int operator==(const BesMdcDigi&) const; 00029 inline void* operator new(size_t); 00030 inline void operator delete(void*); 00031 00032 // virtual void Draw(); 00033 virtual void Print(); 00034 00035 public: 00036 00037 void SetTrackID (G4int track) { trackID = track; }; 00038 void SetLayerNo (G4int layer) { layerNo = layer; }; 00039 void SetCellNo (G4int cell) { cellNo =cell;}; 00040 void SetEdep (G4double de) { edep = de; }; 00041 void SetDriftT (G4double time) { driftT = time;}; 00042 00043 G4int GetTrackID() { return trackID; }; 00044 G4int GetLayerNo() { return layerNo; }; 00045 G4int GetCellNo() { return cellNo;}; 00046 G4double GetEdep() { return edep; }; 00047 G4double GetDriftT() { return driftT;}; 00048 00049 private: 00050 00051 G4int trackID; 00052 G4int layerNo; 00053 G4int cellNo; 00054 G4double edep; 00055 G4double driftT; 00056 00057 }; 00058 00059 typedef G4TDigiCollection<BesMdcDigi> BesMdcDigisCollection; 00060 00061 extern G4Allocator<BesMdcDigi> BesMdcDigiAllocator; 00062 00063 inline void* BesMdcDigi::operator new(size_t) 00064 { 00065 void *aDigi; 00066 aDigi = (void *) BesMdcDigiAllocator.MallocSingle(); 00067 return aDigi; 00068 } 00069 00070 inline void BesMdcDigi::operator delete(void *aDigi) 00071 { 00072 BesMdcDigiAllocator.FreeSingle((BesMdcDigi*) aDigi); 00073 } 00074 00075 #endif 00076