#include <LCDXML2G4VXD.hh>
Collaboration diagram for LCDXML2G4VXD:

Public Member Functions | |
| LCDXML2G4VXD () | |
| LCDXML2G4VXD (G4VPhysicalVolume *momvol, LCDG4MaterialMgr *matmgr, LCD_Document *detdb, std::map< G4LogicalVolume *, G4int > *m) | |
| ~LCDXML2G4VXD () | |
| void | SetMotherVolume (G4VPhysicalVolume *momvol) |
| void | SetMaterialMgr (LCDG4MaterialMgr *matmgr) |
| int | SetGeom (LCD_Document *detdb) |
| void | SetDetTypeMap (std::map< G4LogicalVolume *, G4int > *m) |
| LCDG4VXDSD * | 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 |
| LCDG4VXDSD * | m_vxdSD |
| std::map< G4LogicalVolume *, G4int > * | m_pdettype |
|
|
Definition at line 32 of file LCDXML2G4VXD.cc. References m_matmgr, m_momvol, m_pdettype, and m_vxdSD.
00032 {
00033 m_momvol =0;
00034 m_matmgr =0;
00035 m_vxdSD =0;
00036 m_pdettype =0;
00037 }
|
|
||||||||||||||||||||
|
Definition at line 44 of file LCDXML2G4VXD.cc. References m_vxdSD, SetDetTypeMap(), SetGeom(), SetMaterialMgr(), SetMotherVolume(), and SetSensitiveDetector().
00047 {
00048 SetMotherVolume(momvol);
00049 SetMaterialMgr(matmgr);
00050 SetDetTypeMap(m);
00051 m_vxdSD=0;
00052 SetSensitiveDetector();
00053 SetGeom(detDb);
00054 }
|
|
|
Definition at line 60 of file LCDXML2G4VXD.cc.
00060 {
00061 }
|
|
||||||||||||||||
|
Referenced by SetGeom(). |
|
||||||||||||||||
|
Referenced by SetGeom(). |
|
|
Definition at line 34 of file LCDXML2G4VXD.hh. References m_pdettype. Referenced by LCDXML2G4VXD().
00034 { m_pdettype=m; }
|
|
|
Definition at line 83 of file LCDXML2G4VXD.cc. References LCD_Document::getElement(), m_matmgr, m_momvol, MakeBarrel(), MakeEndCap(), and SetSensitiveDetector(). Referenced by LCDXML2G4VXD().
00083 {
00084 // Make VXD detector geometry
00085 int iret=0;
00086
00087 SetSensitiveDetector();
00088
00089 // Check MotherVolume , Material Manager and detDB were set?
00090 if (m_momvol == 0) {
00091 fprintf(stderr,
00092 "LCDXML2G4VXD::SetGeom Error!!!"
00093 "MotherVolume was not set!!!\n");
00094 }
00095 if (m_matmgr == 0) {
00096 fprintf(stderr,
00097 "LCDXML2G4VXD::SetGeom Error!!! MaterialMgr was not set!!!\n");
00098 }
00099 if (detDb == 0) {
00100 fprintf(stderr,
00101 "LCDXML2G4VXD::SetGeom Error!!! detDb was not set!!!\n");
00102 }
00103 if (m_momvol == 0 || m_matmgr == 0 || detDb == 0) {
00104 return iret;
00105 }
00106
00107
00108 DOM_Element voldb;
00109
00110 voldb=detDb->getElement("VERTEX_BARREL"); // BARREL
00111 if( voldb == DOM_Element() ) {
00112 G4cout<<"*** VERTEX_BARREL not found."<< G4endl;
00113 }
00114 else {
00115 int realLayer=0;
00116 if ((voldb.getTagName()).equals("volume")) {
00117 MakeBarrel(1,voldb,&realLayer);
00118 }
00119 else {
00120 // must be complex volume
00121 int iBarrel;
00122 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00123 int nBarrel = volList.getLength();
00124 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00125 DOM_Node node = volList.item(iBarrel);
00126 voldb = (DOM_Element &)node;
00127 MakeBarrel(1,voldb,&realLayer);
00128 }
00129 }
00130 iret=1;
00131 }
00132
00133 voldb=detDb->getElement("VERTEX_BARREL_INTERMEDIATE"); // BARREL
00134 if( voldb != DOM_Element() ) {
00135 int realLayer=0;
00136 if ((voldb.getTagName()).equals("volume")) {
00137 MakeBarrel(2,voldb,&realLayer);
00138 } else {
00139 // must be complex volume
00140 int iBarrel;
00141 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00142 int nBarrel = volList.getLength();
00143 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00144 DOM_Node node = volList.item(iBarrel);
00145 voldb = (DOM_Element &)node;
00146 MakeBarrel(2,voldb,&realLayer);
00147 }
00148 }
00149 iret=1;
00150 }
00151
00152 voldb=detDb->getElement("VERTEX_ENDCAP"); // ENDCAP
00153 if ( voldb == DOM_Element() ) {
00154 G4cout<<"*** VERTEX_ENDCAP not found."<< G4endl;
00155 }
00156 else {
00157 int realLayer=0;
00158 if ((voldb.getTagName()).equals("volume")) {
00159 MakeEndCap(0,voldb,&realLayer);
00160 } else {
00161 // must be complex volume
00162 int iBarrel;
00163 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00164 int nBarrel = volList.getLength();
00165 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00166 DOM_Node node = volList.item(iBarrel);
00167 voldb = (DOM_Element &)node;
00168 MakeEndCap(0,voldb,&realLayer);
00169 }
00170 }
00171 iret=1;
00172 }
00173
00174 return iret;
00175 }
|
|
|
Definition at line 32 of file LCDXML2G4VXD.hh. References m_matmgr. Referenced by LCDXML2G4VXD().
00032 { m_matmgr = matmgr; }
|
|
|
Definition at line 31 of file LCDXML2G4VXD.hh. References m_momvol. Referenced by LCDXML2G4VXD().
00031 { m_momvol = momvol; }
|
|
|
Definition at line 68 of file LCDXML2G4VXD.cc. References m_vxdSD. Referenced by LCDXML2G4VXD(), and SetGeom().
00068 {
00069 if (m_vxdSD == 0) {
00070 // Define Sensitive Detector Module
00071 G4SDManager* SDman = G4SDManager::GetSDMpointer();
00072 G4String vxdSDname = "/lcddet/vxd";
00073 m_vxdSD = new LCDG4VXDSD(vxdSDname);
00074 SDman->AddNewDetector(m_vxdSD);
00075 }
00076 return m_vxdSD;
00077 }
|
|
|
Definition at line 52 of file LCDXML2G4VXD.hh. Referenced by LCDXML2G4VXD(), SetGeom(), and SetMaterialMgr(). |
|
|
Definition at line 51 of file LCDXML2G4VXD.hh. Referenced by LCDXML2G4VXD(), SetGeom(), and SetMotherVolume(). |
|
|
Definition at line 55 of file LCDXML2G4VXD.hh. Referenced by LCDXML2G4VXD(), and SetDetTypeMap(). |
|
|
Definition at line 53 of file LCDXML2G4VXD.hh. Referenced by LCDXML2G4VXD(), and SetSensitiveDetector(). |
1.3.4