Import Geant4 0.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:09:25 +02:00
parent b97f8d0df7
commit aaa409b6ee
2922 changed files with 55107 additions and 81674 deletions
+78 -54
View File
@@ -5,70 +5,94 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G3DetTable.cc,v 2.1 1998/07/12 02:54:17 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: G3DetTable.cc,v 1.4 1999/05/18 02:40:32 lockman Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
#include "globals.hh"
#include "G3DetTable.hh"
#include "G4VSensitiveDetector.hh"
class G4VSensitiveDetector;
DetTableEntry::DetTableEntry(G4String& set, G4String& det, G4int id,
G4VSensitiveDetector* D){
_set = set;
_det = det;
_id = id;
_detpt = D;
};
RWBoolean DetTableMatch(const DetTableEntry *DetTentry, const void *pt)
{
G4String *name;
name = (G4String*) pt;
if (DetTentry->name == *name)
{
return TRUE;
} else {
return FALSE;
}
DetTableEntry::~DetTableEntry(){;}
G4VSensitiveDetector*
DetTableEntry::getSD(){
return _detpt;
}
G3DetTable::G3DetTable()
{
DetTable = &DetT;
G4String
DetTableEntry::getset(){
return _set;
}
G3DetTable::~G3DetTable()
{
while (! DetTable->isEmpty()) {
DetTableEntry *DetTentry = DetTable->last();
DetTable->removeReference(DetTentry);
delete DetTentry;
}
delete DetTable;
G4String
DetTableEntry::getdet(){
return _det;
}
G4VSensitiveDetector *G3DetTable::get(G4String detname)
{
const void *pt;
pt = &detname;
DetTableEntry *DetTentry = DetTable->find(DetTableMatch, pt);
if (DetTentry == NULL) {
return NULL;
} else {
return DetTentry->detpt;
}
}
G4int
DetTableEntry::getid(){
return _id;
};
G4int G3DetTable::GetID(G4String detname)
{
const void *pt;
pt = &detname;
DetTableEntry *DetTentry = DetTable->find(DetTableMatch, pt);
if (DetTentry == NULL) {
return 0;
} else {
return DetTentry->detid;
}
}
G4String
G3DetTable::MakeHash(G4String& set, G4String& det){;
return set+" "+det;
};
G3DetTable::G3DetTable(){
_Det = new RWTPtrHashDictionary<G4String,DetTableEntry>(RWCString::hash);
};
G3DetTable::~G3DetTable(){
_Det->clearAndDestroy();
delete _Det;
};
G4VSensitiveDetector*
G3DetTable::getSD(G4String& set, G4String& det){
// make hash ID
G4String HashID = MakeHash(set, det);
// search the Hash Dictionary
_DTE = _Det->findValue(&HashID);
if (_DTE != 0) {
return _DTE->getSD();
} else {
// G4cerr << "No G3DetTable entry with key '" << HashID << "'" << endl;
return 0;
}
};
G4int
G3DetTable::GetID(G4String& set, G4String& det){
// make hash ID
G4String HashID = MakeHash(set, det);
// search the Hash Dictionary
_DTE = _Det->findValue(&HashID);
if (_DTE != 0) {
return _DTE->getid();
} else {
// G4cerr << "No G3DetTable entry with key '" << HashID << "'" << endl;
return 0;
}
};
void
G3DetTable::put(G4String& set, G4String& det, G4int id,
G4VSensitiveDetector* D){
G4String* _HashID = new G4String(MakeHash(set, det));
_DTE = new DetTableEntry(set, det, id, D);
_Det->insertKeyAndValue(_HashID, _DTE);
};
void G3DetTable::put(G4String name, G4int detid, G4VSensitiveDetector *detpt)
{
DetTableEntry *DetTentry = new DetTableEntry;
DetTentry->name = name;
DetTentry->detid = detid;
DetTentry->detpt = detpt;
DetTable->append(DetTentry);
}