Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions
RE01CalorimeterROGeometry Class Reference

#include <RE01CalorimeterROGeometry.hh>

Inheritance diagram for RE01CalorimeterROGeometry:
G4VReadOutGeometry

Public Member Functions

 RE01CalorimeterROGeometry ()
 
 RE01CalorimeterROGeometry (G4String)
 
virtual ~RE01CalorimeterROGeometry ()
 
- Public Member Functions inherited from G4VReadOutGeometry
 G4VReadOutGeometry ()
 
 G4VReadOutGeometry (G4String)
 
virtual ~G4VReadOutGeometry ()
 
G4int operator== (const G4VReadOutGeometry &right) const
 
G4int operator!= (const G4VReadOutGeometry &right) const
 
void BuildROGeometry ()
 
virtual G4bool CheckROVolume (G4Step *, G4TouchableHistory *&)
 
const G4SensitiveVolumeListGetIncludeList () const
 
void SetIncludeList (G4SensitiveVolumeList *value)
 
const G4SensitiveVolumeListGetExcludeList () const
 
void SetExcludeList (G4SensitiveVolumeList *value)
 
G4String GetName () const
 
void SetName (G4String value)
 
G4VPhysicalVolumeGetROWorld () const
 

Protected Member Functions

virtual G4VPhysicalVolumeBuild ()
 
- Protected Member Functions inherited from G4VReadOutGeometry
 G4VReadOutGeometry (const G4VReadOutGeometry &right)
 
const G4VReadOutGeometryoperator= (const G4VReadOutGeometry &right)
 
virtual G4bool FindROTouchable (G4Step *)
 

Additional Inherited Members

- Protected Attributes inherited from G4VReadOutGeometry
G4VPhysicalVolumeROworld
 
G4SensitiveVolumeListfincludeList
 
G4SensitiveVolumeListfexcludeList
 
G4String name
 
G4NavigatorROnavigator
 
G4TouchableHistorytouchableHistory
 

Detailed Description

Definition at line 37 of file RE01CalorimeterROGeometry.hh.

Constructor & Destructor Documentation

RE01CalorimeterROGeometry::RE01CalorimeterROGeometry ( )
RE01CalorimeterROGeometry::RE01CalorimeterROGeometry ( G4String  )
RE01CalorimeterROGeometry::~RE01CalorimeterROGeometry ( )
virtual

Definition at line 60 of file RE01CalorimeterROGeometry.cc.

61 {;}

Member Function Documentation

G4VPhysicalVolume * RE01CalorimeterROGeometry::Build ( )
protectedvirtual

Implements G4VReadOutGeometry.

Definition at line 64 of file RE01CalorimeterROGeometry.cc.

References G4NistManager::FindOrBuildMaterial(), G4NistManager::Instance(), kPhi, and kZAxis.

65 {
66  // Material Information imported from NIST database.
67  //
69 
70  // A dummy material is used to fill the volumes of the readout geometry.
71  // ( It will be allowed to set a NULL pointer in volumes of such virtual
72  // division in future, since this material is irrelevant for tracking.)
73  G4Material* dummyMat = NISTman->FindOrBuildMaterial("G4_AIR");
74 
75  //Builds the ReadOut World:
76  G4Box *ROWorldBox = new G4Box("ROWorldBox",fExpHall_x,fExpHall_y,fExpHall_z);
77  G4LogicalVolume *ROWorldLog = new G4LogicalVolume(ROWorldBox, dummyMat,
78  "ROWorldLogical", 0, 0, 0);
79  G4PVPlacement *ROWorldPhys = new G4PVPlacement(0,G4ThreeVector(),
80  "ROWorldPhysical",
81  ROWorldLog,
82  0,false,0);
83  // Calorimeter volume:
84  G4VSolid * caloROtub
85  = new G4Tubs("caloROtub",fCaloTubs_rmin,fCaloTubs_rmax,
86  fCaloTubs_dz,fCaloTubs_sphi,fCaloTubs_dphi);
87  G4LogicalVolume * caloROlog
88  = new G4LogicalVolume(caloROtub,dummyMat,"caloROlogical",0,0,0);
89  G4VPhysicalVolume * caloROphys
90  = new G4PVPlacement(0,G4ThreeVector(),"calROphysical",caloROlog,
91  ROWorldPhys,false,0);
92 
93  // -------------------------------
94  // Calorimeter readout division:
95  // -------------------------------
96  // Phi division first: 48 sectors
97  G4VSolid * caloROphiDivisionTub
98  = new G4Tubs("caloROphiDivision", fCaloCell_rmin, fCaloCell_rmax,
99  fCaloCell_dz, fCaloCell_sphi, fCaloCell_dphi);
100  G4LogicalVolume * caloROphiDivisionLog
101  = new G4LogicalVolume(caloROphiDivisionTub, dummyMat,
102  "caloROphiDivisionLogical",0,0,0);
103  G4VPhysicalVolume * caloROphiDivisionPhys
104  = new G4PVReplica("caloROphiDivisionPhysical", caloROphiDivisionLog,
105  caloROphys, kPhi, fSegmentsinPhi, fCaloCell_dphi);
106  // then z division: 20 slices:
107  G4VSolid * caloROcellTub
108  = new G4Tubs("caloROcellTub", fCaloRing_rmin, fCaloRing_rmax,
109  fCaloRing_dz, fCaloRing_sphi, fCaloRing_dphi);
110  G4LogicalVolume * caloROcellLog
111  = new G4LogicalVolume(caloROcellTub, dummyMat, "caloROcellLogical",0,0,0);
112 // G4VPhysicalVolume * caloROcellPhys =
113  new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys,
114  kZAxis, fSegmentsinZ,2.*fCaloRing_dz);
115 
116  return ROWorldPhys;
117 }
Definition: geomdefs.hh:54
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Box.hh:63
Definition: G4Tubs.hh:84
static G4NistManager * Instance()

The documentation for this class was generated from the following files: