Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

LCDXML2G4Lum Class Reference

#include <LCDXML2G4Lum.hh>

Collaboration diagram for LCDXML2G4Lum:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LCDXML2G4Lum ()
 LCDXML2G4Lum (G4VPhysicalVolume *momvol, LCDG4MaterialMgr *matmgr, LCD_Document *detdb, std::map< G4LogicalVolume *, G4int > *m)
 ~LCDXML2G4Lum ()
void SetMotherVolume (G4VPhysicalVolume *momvol)
void SetMaterialMgr (LCDG4MaterialMgr *matmgr)
void SetDetTypeMap (std::map< G4LogicalVolume *, G4int > *m)
int SetGeom (LCD_Document *detdb)
LCDG4LumSDSetSensitiveDetector ()
int MakeEndCap (const int sysNo, const XERCES_CPP_NAMESPACE::DOM_Element &voldb, int *realLayer)

Private Attributes

G4VPhysicalVolume * m_momvol
LCDG4MaterialMgrm_matmgr
LCDG4LumSDm_lumSD
std::map< G4LogicalVolume *,
G4int > * 
m_pdettype

Constructor & Destructor Documentation

XERCES_CPP_NAMESPACE_USE LCDXML2G4Lum::LCDXML2G4Lum  ) 
 

Definition at line 31 of file LCDXML2G4Lum.cc.

References m_lumSD, m_matmgr, m_momvol, and m_pdettype.

00031                            {
00032   m_momvol   =0;
00033   m_matmgr   =0;
00034   m_lumSD   =0;
00035   m_pdettype =0;
00036 }

LCDXML2G4Lum::LCDXML2G4Lum G4VPhysicalVolume *  momvol,
LCDG4MaterialMgr matmgr,
LCD_Document detdb,
std::map< G4LogicalVolume *, G4int > *  m
 

Definition at line 43 of file LCDXML2G4Lum.cc.

References m_lumSD, SetDetTypeMap(), SetGeom(), SetMaterialMgr(), SetMotherVolume(), and SetSensitiveDetector().

00046                                                               {
00047   SetMotherVolume(momvol);
00048   SetMaterialMgr(matmgr);
00049   SetDetTypeMap(m);
00050   m_lumSD=0;
00051   SetSensitiveDetector();
00052   SetGeom(detDb);
00053 }

LCDXML2G4Lum::~LCDXML2G4Lum  ) 
 

Definition at line 59 of file LCDXML2G4Lum.cc.

00059                             {
00060 }


Member Function Documentation

int LCDXML2G4Lum::MakeEndCap const int  sysNo,
const XERCES_CPP_NAMESPACE::DOM_Element &  voldb,
int *  realLayer
 

Referenced by SetGeom().

void LCDXML2G4Lum::SetDetTypeMap std::map< G4LogicalVolume *, G4int > *  m  )  [inline]
 

Definition at line 24 of file LCDXML2G4Lum.hh.

References m_pdettype.

Referenced by LCDXML2G4Lum().

00024 { m_pdettype=m; }

int LCDXML2G4Lum::SetGeom LCD_Document detdb  ) 
 

Definition at line 82 of file LCDXML2G4Lum.cc.

References LCD_Document::getElement(), m_matmgr, m_momvol, MakeEndCap(), and SetSensitiveDetector().

Referenced by LCDXML2G4Lum().

00082                                              {
00083   // Make Lum 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             "LCDXML2G4Lum::SetGeom Error!!! MotherVolume was not set!!!\n");
00092   }
00093   if (m_matmgr == 0) {
00094     fprintf(stderr,
00095             "LCDXML2G4Lum::SetGeom Error!!! MaterialMgr was not set!!!\n");
00096   }
00097   if (detDb == 0) {
00098     fprintf(stderr,
00099             "LCDXML2G4Lum::SetGeom Error!!! detDb was not set!!!\n");
00100   }
00101   if (m_momvol == 0 || m_matmgr == 0 || detDb == 0) {
00102     return iret;
00103   }
00104 
00105 
00106   DOM_Element voldb;
00107 
00108   voldb=detDb->getElement("LUM_ENDCAP"); // ENDCAP
00109   if( voldb != DOM_Element() ) {
00110     int realLayer=0;
00111     if ((voldb.getTagName()).equals("volume")) {
00112       MakeEndCap(5,voldb,&realLayer);
00113     } else {
00114       // must be complex volume
00115       int iBarrel;
00116       DOM_NodeList volList = voldb.getElementsByTagName("volume");
00117       int nBarrel = volList.getLength();
00118       for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00119         DOM_Node node = volList.item(iBarrel);
00120         voldb = (DOM_Element &)node;
00121         MakeEndCap(5,voldb,&realLayer);
00122       }
00123     }
00124     iret=1;
00125   }
00126 
00127   return iret;
00128 }

void LCDXML2G4Lum::SetMaterialMgr LCDG4MaterialMgr matmgr  )  [inline]
 

Definition at line 23 of file LCDXML2G4Lum.hh.

References m_matmgr.

Referenced by LCDXML2G4Lum().

00023 { m_matmgr = matmgr; }

void LCDXML2G4Lum::SetMotherVolume G4VPhysicalVolume *  momvol  )  [inline]
 

Definition at line 22 of file LCDXML2G4Lum.hh.

References m_momvol.

Referenced by LCDXML2G4Lum().

00022 { m_momvol = momvol; }

LCDG4LumSD * LCDXML2G4Lum::SetSensitiveDetector  ) 
 

Definition at line 67 of file LCDXML2G4Lum.cc.

References m_lumSD.

Referenced by LCDXML2G4Lum(), and SetGeom().

00067                                                {
00068   if (m_lumSD == 0) {
00069     // Define Sensitive Detector Module
00070     G4SDManager* SDman = G4SDManager::GetSDMpointer();
00071     G4String lumSDname = "/lcddet/lum";
00072     m_lumSD = new LCDG4LumSD(lumSDname);
00073     SDman->AddNewDetector(m_lumSD);
00074   }
00075   return m_lumSD;
00076 }


Member Data Documentation

LCDG4LumSD* LCDXML2G4Lum::m_lumSD [private]
 

Definition at line 35 of file LCDXML2G4Lum.hh.

Referenced by LCDXML2G4Lum(), and SetSensitiveDetector().

LCDG4MaterialMgr* LCDXML2G4Lum::m_matmgr [private]
 

Definition at line 34 of file LCDXML2G4Lum.hh.

Referenced by LCDXML2G4Lum(), SetGeom(), and SetMaterialMgr().

G4VPhysicalVolume* LCDXML2G4Lum::m_momvol [private]
 

Definition at line 33 of file LCDXML2G4Lum.hh.

Referenced by LCDXML2G4Lum(), SetGeom(), and SetMotherVolume().

std::map<G4LogicalVolume*,G4int>* LCDXML2G4Lum::m_pdettype [private]
 

Definition at line 36 of file LCDXML2G4Lum.hh.

Referenced by LCDXML2G4Lum(), and SetDetTypeMap().


The documentation for this class was generated from the following files:
Generated on Thu Oct 7 18:45:08 2004 for LCDG4 by doxygen 1.3.4