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

LCDXML2G4Muon Class Reference

#include <LCDXML2G4Muon.hh>

Collaboration diagram for LCDXML2G4Muon:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LCDXML2G4Muon ()
 LCDXML2G4Muon (G4VPhysicalVolume *momvol, LCDG4MaterialMgr *matmgr, LCD_Document *detdb, std::map< G4LogicalVolume *, G4int > *m)
 ~LCDXML2G4Muon ()
void SetMotherVolume (G4VPhysicalVolume *momvol)
void SetMaterialMgr (LCDG4MaterialMgr *matmgr)
int SetGeom (LCD_Document *detdb)
void SetDetTypeMap (std::map< G4LogicalVolume *, G4int > *m)
LCDG4MuonSDSetSensitiveDetector ()
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
LCDG4MaterialMgrm_matmgr
LCDG4MuonSDm_muonSD
std::map< G4LogicalVolume *,
G4int > * 
m_pdettype

Constructor & Destructor Documentation

XERCES_CPP_NAMESPACE_USE LCDXML2G4Muon::LCDXML2G4Muon  ) 
 

Definition at line 30 of file LCDXML2G4Muon.cc.

References m_matmgr, m_momvol, m_muonSD, and m_pdettype.

00030                              {
00031   m_momvol   =0;
00032   m_matmgr   =0;
00033   m_muonSD   =0;
00034   m_pdettype =0;
00035 }

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

Definition at line 40 of file LCDXML2G4Muon.cc.

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

00043                                                                 {
00044   SetMotherVolume(momvol);
00045   SetMaterialMgr(matmgr);
00046   SetDetTypeMap(m);
00047   m_muonSD=0;
00048   SetSensitiveDetector();
00049   SetGeom(detDb);
00050 }

LCDXML2G4Muon::~LCDXML2G4Muon  ) 
 

Definition at line 55 of file LCDXML2G4Muon.cc.

00055                               {
00056 }


Member Function Documentation

int LCDXML2G4Muon::MakeBarrel const int  sysNo,
const XERCES_CPP_NAMESPACE::DOM_Element &  voldb,
int *  realLayer
 

Referenced by SetGeom().

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

Referenced by SetGeom().

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

Definition at line 26 of file LCDXML2G4Muon.hh.

References m_pdettype.

Referenced by LCDXML2G4Muon().

00026 { m_pdettype=m; }

int LCDXML2G4Muon::SetGeom LCD_Document detdb  ) 
 

Definition at line 76 of file LCDXML2G4Muon.cc.

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

Referenced by LCDXML2G4Muon().

00076                                               {
00077   // Make Muon detector geometry
00078   int iret=0;
00079 
00080   SetSensitiveDetector();
00081 
00082   // Check MotherVolume , Material Manager and detDB were set?
00083   if (m_momvol == 0) {
00084     fprintf(stderr,
00085             "LCDXML2G4Muon::SetGeom Error!!! MotherVolume was not set!!!\n");
00086   }
00087   if (m_matmgr == 0) {
00088     fprintf(stderr,
00089             "LCDXML2G4Muon::SetGeom Error!!! MaterialMgr was not set!!!\n");
00090   }
00091   if (detDb == 0) {
00092     fprintf(stderr,
00093             "LCDXML2G4Muon::SetGeom Error!!! detDb was not set!!!\n");
00094   }
00095   if (m_momvol == 0 || m_matmgr == 0 || detDb == 0) {
00096     return iret;
00097   }
00098 
00099 
00100   DOM_Element voldb;
00101 
00102   voldb=detDb->getElement("MUON_BARREL"); // BARREL
00103   if( voldb != DOM_Element() ) {
00104     int realLayer=0;
00105     if ((voldb.getTagName()).equals("volume")) {
00106       MakeBarrel(14,voldb,&realLayer);
00107     } else {
00108       // must be complex volume
00109       int iBarrel;
00110       DOM_NodeList volList = voldb.getElementsByTagName("volume");
00111       int nBarrel = volList.getLength();
00112       for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00113         DOM_Node node = volList.item(iBarrel);
00114         voldb = (DOM_Element &)node;
00115         MakeBarrel(14,voldb,&realLayer);
00116       }
00117     }
00118     iret=1;
00119   }
00120 
00121   voldb=detDb->getElement("MUON_ENDCAP"); // ENDCAP
00122   if( voldb != DOM_Element() ) {
00123     int realLayer=0;
00124     if ((voldb.getTagName()).equals("volume")) {
00125       MakeEndCap(15,voldb,&realLayer);
00126     } else {
00127       // must be complex volume
00128       int iBarrel;
00129       DOM_NodeList volList = voldb.getElementsByTagName("volume");
00130       int nBarrel = volList.getLength();
00131       for (iBarrel=0 ; iBarrel < nBarrel ; iBarrel++) {
00132         DOM_Node node = volList.item(iBarrel);
00133         voldb = (DOM_Element &)node;
00134         MakeEndCap(15,voldb,&realLayer);
00135       }
00136     }
00137     iret=1;
00138   }
00139 
00140   return iret;
00141 }

void LCDXML2G4Muon::SetMaterialMgr LCDG4MaterialMgr matmgr  )  [inline]
 

Definition at line 24 of file LCDXML2G4Muon.hh.

References m_matmgr.

Referenced by LCDXML2G4Muon().

00024 { m_matmgr = matmgr; }

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

Definition at line 23 of file LCDXML2G4Muon.hh.

References m_momvol.

Referenced by LCDXML2G4Muon().

00023 { m_momvol = momvol; }

LCDG4MuonSD * LCDXML2G4Muon::SetSensitiveDetector  ) 
 

Definition at line 62 of file LCDXML2G4Muon.cc.

References m_muonSD.

Referenced by LCDXML2G4Muon(), and SetGeom().

00062                                                  {
00063   if (m_muonSD == 0) {
00064     // Define Sensitive Detector Module
00065     G4SDManager* SDman = G4SDManager::GetSDMpointer();
00066     G4String muonSDname = "/lcddet/muon";
00067     m_muonSD = new LCDG4MuonSD(muonSDname);
00068     SDman->AddNewDetector(m_muonSD);
00069   }
00070   return m_muonSD;
00071 }


Member Data Documentation

LCDG4MaterialMgr* LCDXML2G4Muon::m_matmgr [private]
 

Definition at line 45 of file LCDXML2G4Muon.hh.

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

G4VPhysicalVolume* LCDXML2G4Muon::m_momvol [private]
 

Definition at line 44 of file LCDXML2G4Muon.hh.

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

LCDG4MuonSD* LCDXML2G4Muon::m_muonSD [private]
 

Definition at line 46 of file LCDXML2G4Muon.hh.

Referenced by LCDXML2G4Muon(), and SetSensitiveDetector().

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

Definition at line 47 of file LCDXML2G4Muon.hh.

Referenced by LCDXML2G4Muon(), 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