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

LCDXML2G4Tracker Class Reference

#include <LCDXML2G4Tracker.hh>

Collaboration diagram for LCDXML2G4Tracker:

Collaboration graph
[legend]
List of all members.

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)
LCDG4TrackerSDSetSensitiveDetector ()
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
LCDG4TrackerSDm_trackerSD
std::map< G4LogicalVolume *,
G4int > * 
m_pdettype

Constructor & Destructor Documentation

XERCES_CPP_NAMESPACE_USE LCDXML2G4Tracker::LCDXML2G4Tracker  ) 
 

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 }

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

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 }

LCDXML2G4Tracker::~LCDXML2G4Tracker  ) 
 

Definition at line 59 of file LCDXML2G4Tracker.cc.

00059                                     {
00060 }


Member Function Documentation

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

Referenced by SetGeom().

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

Referenced by SetGeom().

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

Definition at line 32 of file LCDXML2G4Tracker.hh.

References m_pdettype.

Referenced by LCDXML2G4Tracker().

00032 { m_pdettype=m; }

int LCDXML2G4Tracker::SetGeom LCD_Document detdb  ) 
 

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 }

void LCDXML2G4Tracker::SetMaterialMgr LCDG4MaterialMgr matmgr  )  [inline]
 

Definition at line 30 of file LCDXML2G4Tracker.hh.

References m_matmgr.

Referenced by LCDXML2G4Tracker().

00030 { m_matmgr = matmgr; }

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

Definition at line 29 of file LCDXML2G4Tracker.hh.

References m_momvol.

Referenced by LCDXML2G4Tracker().

00029 { m_momvol = momvol; }

LCDG4TrackerSD * LCDXML2G4Tracker::SetSensitiveDetector  ) 
 

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 }


Member Data Documentation

LCDG4MaterialMgr* LCDXML2G4Tracker::m_matmgr [private]
 

Definition at line 51 of file LCDXML2G4Tracker.hh.

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

G4VPhysicalVolume* LCDXML2G4Tracker::m_momvol [private]
 

Definition at line 50 of file LCDXML2G4Tracker.hh.

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

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

Definition at line 53 of file LCDXML2G4Tracker.hh.

Referenced by LCDXML2G4Tracker(), and SetDetTypeMap().

LCDG4TrackerSD* LCDXML2G4Tracker::m_trackerSD [private]
 

Definition at line 52 of file LCDXML2G4Tracker.hh.

Referenced by LCDXML2G4Tracker(), and SetSensitiveDetector().


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