40auto_ptr<G4AllITManager> G4AllITManager::fInstance(0);
42G4AllITManager::G4AllITManager()
49 if(fInstance.get() == 0) fInstance = auto_ptr<G4AllITManager>(
new G4AllITManager());
50 return fInstance.get() ;
60 std::map<G4ITType, G4VITManager*>::iterator it ;
61 std::map<G4ITType, G4VITManager*>::iterator it_tmp ;
63 for(it = fITSubManager.begin(); it!=fITSubManager.end() ; )
65 if(it->second)
delete it->second;
68 fITSubManager.erase(it_tmp);
75 std::map<G4ITType, G4VITManager*>::iterator it = fITSubManager.begin() ;
77 for(; it!=fITSubManager.end() ; it++)
79 it->second->UpdatePositionMap();
85 std::map<G4ITType, G4VITManager*>::iterator it = fITSubManager.begin() ;
87 for(; it!=fITSubManager.end() ; it++)
89 it->second->CreateTree();
100 map<G4ITType, G4VITManager*>::iterator it = fITSubManager.find(type);
102 if(it == fITSubManager.end())
return 0;
109 fITSubManager[manager->
GetITType()] = manager;
114 map<G4ITType, G4VITManager*>::iterator it = fITSubManager.find(
GetIT(track)->GetITType());
116 if(it == fITSubManager.end())
return 0;
118 return it->second->GetBox(track);
G4IT * GetIT(const G4Track *track)
static G4AllITManager * Instance()
static void DeleteInstance()
G4VITManager * GetInstance(G4ITType)
G4ITBox * GetBox(const G4Track *)
void RegisterManager(G4VITManager *manager)
void Push(G4Track *track)
static G4ITManager< T > * Instance()
virtual const G4ITType GetITType() const =0