#include <LCDXML2G4Tracker.hh>
Collaboration diagram for LCDXML2G4Tracker:
Public Member Functions | |
| LCDXML2G4Tracker () | |
| LCDXML2G4Tracker (G4VPhysicalVolume *momvol, LCDG4MaterialMgr *matmgr, LCD_Document *detdb, std::map< G4LogicalVolume *, G4int > *m) | |
| ~LCDXML2G4Tracker () | |
| void | SetMotherVolume (G4VPhysicalVolume *momvol) |
| void | SetMaterialMgr (LCDG4MaterialMgr *matmgr) |
| int | SetGeom (LCD_Document *detdb) |
| void | SetDetTypeMap (std::map< G4LogicalVolume *, G4int > *m) |
| LCDG4TrackerSD * | SetSensitiveDetector () |
| int | MakeBarrel (const int sysNo, const XERCES_CPP_NAMESPACE::DOM_Element &voldb, int *realLayer) |
| int | MakeEndCap (const int sysNo, const XERCES_CPP_NAMESPACE::DOM_Element &voldb, int *realLayer) |
Private Attributes | |
| G4VPhysicalVolume * | m_momvol |
| LCDG4MaterialMgr * | m_matmgr |
| LCDG4TrackerSD * | m_trackerSD |
| std::map< G4LogicalVolume *, G4int > * | m_pdettype |
|
|
Definition at line 33 of file LCDXML2G4Tracker.cc. References m_matmgr, m_momvol, m_pdettype, and m_trackerSD.
00033 {
00034 m_momvol =0;
00035 m_matmgr =0;
00036 m_trackerSD=0;
00037 m_pdettype =0;
00038 }
|
|
||||||||||||||||||||
|
Definition at line 44 of file LCDXML2G4Tracker.cc. References m_trackerSD, SetDetTypeMap(), SetGeom(), SetMaterialMgr(), SetMotherVolume(), and SetSensitiveDetector().
00047 {
00048 SetMotherVolume(momvol);
00049 SetMaterialMgr(matmgr);
00050 SetDetTypeMap(m);
00051 m_trackerSD=0;
00052 SetSensitiveDetector();
00053 SetGeom(detDb);
00054 }
|
|
|
Definition at line 59 of file LCDXML2G4Tracker.cc.
00059 {
00060 }
|
|
||||||||||||||||
|
Referenced by SetGeom(). |
|
||||||||||||||||
|
Referenced by SetGeom(). |
|
|
Definition at line 32 of file LCDXML2G4Tracker.hh. References m_pdettype. Referenced by LCDXML2G4Tracker().
00032 { m_pdettype=m; }
|
|
|
Definition at line 82 of file LCDXML2G4Tracker.cc. References LCD_Document::getElement(), m_matmgr, m_momvol, MakeBarrel(), MakeEndCap(), and SetSensitiveDetector(). Referenced by LCDXML2G4Tracker().
00082 {
00083 // Make Tracker detector geometry
00084 int iret=0;
00085
00086 SetSensitiveDetector();
00087
00088 // Check MotherVolume , Material Manager and detDB were set?
00089 if (m_momvol == 0) {
00090 fprintf(stderr,
00091 "LCDXML2G4Tracker::SetGeom Error!!!"
00092 "MotherVolume was not set!!!\n");
00093 }
00094 if (m_matmgr == 0) {
00095 fprintf(stderr,
00096 "LCDXML2G4Tracker::SetGeom Error!!! MaterialMgr was not set!!!\n");
00097 }
00098 if (detDb == 0) {
00099 fprintf(stderr,
00100 "LCDXML2G4Tracker::SetGeom Error!!! detDb was not set!!!\n");
00101 }
00102 if (m_momvol == 0 || m_matmgr == 0 || detDb == 0) {
00103 return iret;
00104 }
00105
00106
00107 DOM_Element voldb;
00108
00109 voldb=detDb->getElement("TRACK_BARREL"); // BARREL
00110 if( voldb != DOM_Element() ) {
00111 int realLayer=0;
00112 if ((voldb.getTagName()).equals("volume")) {
00113 MakeBarrel(0,voldb,&realLayer);
00114 } else {
00115 // must be complex volume
00116 int iBarrel;
00117 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00118 int nBarrel = volList.getLength();
00119 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00120 DOM_Node node = volList.item(iBarrel);
00121 voldb = (DOM_Element &)node;
00122 MakeBarrel(0,voldb,&realLayer);
00123 }
00124 }
00125 iret=1;
00126 }
00127
00128 voldb=detDb->getElement("TRACK_BARREL_INTERMEDIATE"); // BARREL
00129 if( voldb != DOM_Element() ) {
00130 int realLayer=0;
00131 if ((voldb.getTagName()).equals("volume")) {
00132 MakeBarrel(2,voldb,&realLayer);
00133 } else {
00134 // must be complex volume
00135 int iBarrel;
00136 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00137 int nBarrel = volList.getLength();
00138 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00139 DOM_Node node = volList.item(iBarrel);
00140 voldb = (DOM_Element &)node;
00141 MakeBarrel(2,voldb,&realLayer);
00142 }
00143 }
00144 iret=1;
00145 }
00146
00147 voldb=detDb->getElement("TRACK_ENDCAP"); // ENDCAP
00148 if( voldb != DOM_Element() ) {
00149 int realLayer=0;
00150 if ((voldb.getTagName()).equals("volume")) {
00151 MakeEndCap(0,voldb,&realLayer);
00152 } else {
00153 // must be complex volume
00154 int iBarrel;
00155 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00156 int nBarrel = volList.getLength();
00157 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00158 DOM_Node node = volList.item(iBarrel);
00159 voldb = (DOM_Element &)node;
00160 MakeEndCap(0,voldb,&realLayer);
00161 }
00162 }
00163 iret=1;
00164 }
00165
00166 return iret;
00167 }
|
|
|
Definition at line 30 of file LCDXML2G4Tracker.hh. References m_matmgr. Referenced by LCDXML2G4Tracker().
00030 { m_matmgr = matmgr; }
|
|
|
Definition at line 29 of file LCDXML2G4Tracker.hh. References m_momvol. Referenced by LCDXML2G4Tracker().
00029 { m_momvol = momvol; }
|
|
|
Definition at line 67 of file LCDXML2G4Tracker.cc. References m_trackerSD. Referenced by LCDXML2G4Tracker(), and SetGeom().
00067 {
00068 if (m_trackerSD == 0) {
00069 // Define Sensitive Detector Module
00070 G4SDManager* SDman = G4SDManager::GetSDMpointer();
00071 G4String trackerSDname = "/lcddet/tracker";
00072 m_trackerSD = new LCDG4TrackerSD(trackerSDname);
00073 SDman->AddNewDetector(m_trackerSD);
00074 }
00075 return m_trackerSD;
00076 }
|
|
|
Definition at line 51 of file LCDXML2G4Tracker.hh. Referenced by LCDXML2G4Tracker(), SetGeom(), and SetMaterialMgr(). |
|
|
Definition at line 50 of file LCDXML2G4Tracker.hh. Referenced by LCDXML2G4Tracker(), SetGeom(), and SetMotherVolume(). |
|
|
Definition at line 53 of file LCDXML2G4Tracker.hh. Referenced by LCDXML2G4Tracker(), and SetDetTypeMap(). |
|
|
Definition at line 52 of file LCDXML2G4Tracker.hh. Referenced by LCDXML2G4Tracker(), and SetSensitiveDetector(). |
1.3.4