// This code implementation is the intellectual property of // the RD44 GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: G4DigiManager.hh,v 2.1 1998/07/12 03:08:25 urbi Exp $ // GEANT4 tag $Name: geant4-00 $ // #ifndef G4DigiManager_h #define G4DigiManager_h 1 #include "globals.hh" class G4Event; #include "G4VDigitizerModule.hh" class G4VHitsCollection; class G4VDigiCollection; class G4DMmessenger; #include "G4DCtable.hh" class G4RunManager; class G4SDManager; #include class G4DigiManager { public: static G4DigiManager* GetDMpointer(); static G4DigiManager* GetDMpointerIfExist(); protected: G4DigiManager(); public: ~G4DigiManager(); void AddNewModule(G4VDigitizerModule* DM); void Digitize(G4String mName); G4VDigitizerModule* FindDigitizerModule(G4String mName); const G4VHitsCollection* GetHitsCollection(G4int HCID, G4int eventID = 0); const G4VDigiCollection* GetDigiCollection(G4int DCID, G4int eventID = 0); G4int GetHitsCollectionID(G4String HCname); G4int GetDigiCollectionID(G4String DCname); void SetDigiCollection(G4int DCID, G4VDigiCollection* aDC); void SetVerboseLevel(G4int vl); void List() const; private: static G4DigiManager * fDManager; G4int verboseLevel; RWTPtrOrderedVector DMtable; G4DCtable* DCtable; G4DMmessenger* theMessenger; G4RunManager* runManager; G4SDManager* SDManager; public: inline G4int GetVerboseLevel() const { return verboseLevel; } inline G4int GetCollectionCapacity() const { return DCtable->entries(); } inline G4int GetModuleCapacity() const { return DMtable.entries(); } inline G4DCtable* GetDCtable() const { return DCtable; } inline void RestoreDCtable(G4DCtable* dc) { if(DCtable) delete DCtable; DCtable = dc; } }; #endif