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

Public Member Functions | |
| LCDXML2G4Cal () | |
| LCDXML2G4Cal (G4VPhysicalVolume *momvol, LCDG4MaterialMgr *matmgr, LCD_Document *detdb, std::map< G4LogicalVolume *, G4int > *m, G4int sysno) | |
| ~LCDXML2G4Cal () | |
| void | SetMotherVolume (G4VPhysicalVolume *momvol) |
| void | SetMaterialMgr (LCDG4MaterialMgr *matmgr) |
| int | SetGeom (LCD_Document *detdb) |
| void | SetDetTypeMap (std::map< G4LogicalVolume *, G4int > *m) |
| LCDG4CalSD * | SetSensitiveDetector (G4String &SDname, const XERCES_CPP_NAMESPACE::DOM_Element &voldb) |
| int | MakeBarrel (const XERCES_CPP_NAMESPACE::DOM_Element &voldb, int *realLayer) |
| int | MakeEndCap (const XERCES_CPP_NAMESPACE::DOM_Element &voldb, int *realLayer) |
Private Attributes | |
| G4VPhysicalVolume * | m_momvol |
| LCDG4MaterialMgr * | m_matmgr |
| LCDG4CalSD * | m_calSDBarrel |
| LCDG4CalSD * | m_calSDEndcap |
| std::map< G4LogicalVolume *, G4int > * | m_pdettype |
| G4int | sysNo |
| G4String | sysName |
| G4String | radical |
| G4String | xmlPrefix |
|
|
Definition at line 28 of file LCDXML2G4Cal.cc. References m_calSDBarrel, m_calSDEndcap, m_matmgr, m_momvol, and m_pdettype.
00028 {
00029 m_momvol = 0;
00030 m_matmgr = 0;
00031 m_pdettype = 0;
00032 m_calSDBarrel = 0;
00033 m_calSDEndcap = 0;
00034 }
|
|
||||||||||||||||||||||||
|
Definition at line 39 of file LCDXML2G4Cal.cc. References m_calSDBarrel, m_calSDEndcap, radical, SetDetTypeMap(), SetGeom(), SetMaterialMgr(), SetMotherVolume(), sysName, sysNo, and xmlPrefix.
00043 {
00044 SetMotherVolume(momvol);
00045 SetMaterialMgr(matmgr);
00046 SetDetTypeMap(m);
00047 m_calSDBarrel=0;
00048 m_calSDEndcap=0;
00049
00050 sysNo = sysno;
00051 switch(sysNo) {
00052 case 10: // ECal
00053 sysName = "EM";
00054 xmlPrefix = "EM";
00055 radical = "ecal";
00056 break;
00057 case 12: // HCal
00058 sysName = "HD";
00059 xmlPrefix = "HAD";
00060 radical = "hcal";
00061 break;
00062 default:
00063 G4cout<< "LCDXML2G4Cal: Bad sysNo provided!!" << G4endl;
00064 exit(1);
00065 }
00066 SetGeom(detDb);
00067 }
|
|
|
Definition at line 72 of file LCDXML2G4Cal.cc.
00072 {
00073 }
|
|
||||||||||||
|
Referenced by SetGeom(). |
|
||||||||||||
|
Referenced by SetGeom(). |
|
|
Definition at line 32 of file LCDXML2G4Cal.hh. References m_pdettype. Referenced by LCDXML2G4Cal().
00032 { m_pdettype=m; }
|
|
|
Definition at line 119 of file LCDXML2G4Cal.cc. References LCD_Document::getElement(), m_calSDBarrel, m_calSDEndcap, m_matmgr, m_momvol, MakeBarrel(), MakeEndCap(), radical, SetSensitiveDetector(), and xmlPrefix. Referenced by LCDXML2G4Cal().
00119 {
00120 // Build detector geometry
00121 int iret=0;
00122
00123 // Check MotherVolume , Material Manager and detDB were set?
00124 if (m_momvol == 0) {
00125 G4cerr<<"LCDXML2G4Cal::SetGeom Error!!! MotherVolume was not set!!!\n";
00126 }
00127 if (m_matmgr == 0) {
00128 G4cerr<<"LCDXML2G4Cal::SetGeom Error!!! MaterialMgr was not set!!!\n";
00129 }
00130 if (detDb == 0) {
00131 G4cerr<<"LCDXML2G4Cal::SetGeom Error!!! detDb was not set!!!\n";
00132 }
00133 if (m_momvol == 0 || m_matmgr == 0 || detDb == 0) {
00134 return iret;
00135 }
00136
00137 DOM_Element voldb;
00138
00139 // === BARREL ===
00140
00141 G4String xmlName = xmlPrefix+"_BARREL";
00142 voldb=detDb->getElement(xmlName.c_str());
00143
00144 if( voldb == DOM_Element() ) {
00145 G4cout<<"*** "<< xmlName << " not found."<< G4endl;
00146 }
00147 else {
00148 G4String SDname = radical + "B";
00149 m_calSDBarrel = SetSensitiveDetector( SDname, voldb );
00150
00151 int realLayer=0;
00152 if ((voldb.getTagName()).equals("volume")) {
00153 MakeBarrel(voldb,&realLayer);
00154 } else {
00155 // must be complex volume
00156 int iBarrel;
00157 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00158 int nBarrel = volList.getLength();
00159 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00160 DOM_Node node = volList.item(iBarrel);
00161 voldb = (DOM_Element &)node;
00162 MakeBarrel(voldb,&realLayer);
00163 }
00164 }
00165 iret=1;
00166 }
00167
00168 // === ENDCAP ===
00169
00170 xmlName = xmlPrefix+"_ENDCAP";
00171 voldb=detDb->getElement(xmlName.c_str());
00172 if( voldb == DOM_Element() ) {
00173 G4cout<<"*** "<< xmlName << " not found."<< G4endl;
00174 }
00175 else {
00176 G4String SDname = radical + "EC";
00177 m_calSDEndcap = SetSensitiveDetector( SDname, voldb );
00178
00179 int realLayer=0;
00180 if ((voldb.getTagName()).equals("volume")) {
00181 MakeEndCap(voldb,&realLayer);
00182 } else {
00183 // must be complex volume
00184 int iBarrel;
00185 DOM_NodeList volList = voldb.getElementsByTagName("volume");
00186 int nBarrel = volList.getLength();
00187 for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00188 DOM_Node node = volList.item(iBarrel);
00189 voldb = (DOM_Element &)node;
00190 MakeEndCap(voldb,&realLayer);
00191 }
00192 }
00193 iret=1;
00194 }
00195
00196 return iret;
00197 }
|
|
|
Definition at line 30 of file LCDXML2G4Cal.hh. References m_matmgr. Referenced by LCDXML2G4Cal().
00030 { m_matmgr = matmgr; }
|
|
|
Definition at line 29 of file LCDXML2G4Cal.hh. References m_momvol. Referenced by LCDXML2G4Cal().
00029 { m_momvol = momvol; }
|
|
||||||||||||
|
Referenced by SetGeom(). |
|
|
Definition at line 48 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), and SetGeom(). |
|
|
Definition at line 49 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), and SetGeom(). |
|
|
Definition at line 47 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), SetGeom(), and SetMaterialMgr(). |
|
|
Definition at line 46 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), SetGeom(), and SetMotherVolume(). |
|
|
Definition at line 51 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), and SetDetTypeMap(). |
|
|
Definition at line 54 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), and SetGeom(). |
|
|
Definition at line 53 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(). |
|
|
Definition at line 52 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(). |
|
|
Definition at line 55 of file LCDXML2G4Cal.hh. Referenced by LCDXML2G4Cal(), and SetGeom(). |
1.3.4