Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
XDetectorConstruction Class Reference

#include <Doxymodules_exoticphysics.h>

Inheritance diagram for XDetectorConstruction:
G4VUserDetectorConstruction

Public Member Functions

 XDetectorConstruction ()
 
virtual ~XDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 
void Field (G4bool bl)
 

Private Member Functions

void DefineMaterials ()
 
void SetupGeometry ()
 

Private Attributes

G4MaterialfLiquidHelium
 
G4MaterialfGermanium
 
G4MaterialfAluminum
 
G4MaterialfTungsten
 
G4VPhysicalVolumefWorldPhys
 
G4bool fConstructed
 
G4bool fIfField
 

Detailed Description

Definition at line 48 of file Doxymodules_exoticphysics.h.

Constructor & Destructor Documentation

◆ XDetectorConstruction()

XDetectorConstruction::XDetectorConstruction ( )

Definition at line 59 of file XDetectorConstruction.cc.

60 : fConstructed(false), fIfField(false) {
61 fLiquidHelium = NULL;
62 fGermanium = NULL;
63 fAluminum = NULL;
64 fTungsten = NULL;
65 fWorldPhys = NULL;
66}
G4VPhysicalVolume * fWorldPhys

◆ ~XDetectorConstruction()

XDetectorConstruction::~XDetectorConstruction ( )
virtual

Definition at line 70 of file XDetectorConstruction.cc.

70{;}

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * XDetectorConstruction::Construct ( )
virtual

Definition at line 74 of file XDetectorConstruction.cc.

75{
76 if(!fConstructed)
77 {
78 fConstructed = true;
81 }
82 return fWorldPhys;
83}

◆ ConstructSDandField()

void XDetectorConstruction::ConstructSDandField ( )
virtual

Definition at line 163 of file XDetectorConstruction.cc.

163 {
164 //
165 // detector -- Note : Aluminum electrode sensitivity is attached to Germanium
166 //
167 XAluminumElectrodeSensitivity* electrodeSensitivity =
168 new XAluminumElectrodeSensitivity("XAluminumElectrode");
169 G4SDManager::GetSDMpointer()->AddNewDetector(electrodeSensitivity);
170 SetSensitiveDetector("fGermaniumLogical", electrodeSensitivity);
171}

◆ DefineMaterials()

void XDetectorConstruction::DefineMaterials ( )
private

Definition at line 87 of file XDetectorConstruction.cc.

88{
89 G4NistManager* nistManager = G4NistManager::Instance();
90
91 fLiquidHelium = nistManager->FindOrBuildMaterial("G4_AIR"); // to be corrected
92 fGermanium = nistManager->FindOrBuildMaterial("G4_Ge");
93 fAluminum = nistManager->FindOrBuildMaterial("G4_Al");
94 fTungsten = nistManager->FindOrBuildMaterial("G4_W");
95}

◆ SetupGeometry()

void XDetectorConstruction::SetupGeometry ( )
private

Definition at line 99 of file XDetectorConstruction.cc.

100{
101 //
102 // World
103 //
104 G4VSolid* worldSolid = new G4Box("World",16.*cm,16.*cm,16.*cm);
105 G4LogicalVolume* worldLogical =
106 new G4LogicalVolume(worldSolid,fLiquidHelium,"World");
107 worldLogical->SetUserLimits(new G4UserLimits(10*mm, DBL_MAX, DBL_MAX, 0, 0));
108 fWorldPhys = new G4PVPlacement(0,G4ThreeVector(),worldLogical,"World",0,
109 false,0);
110
111 //
112 // Germanium cylinder - this is the volume in which we will propagate phonons
113 //
114 G4VSolid* fGermaniumSolid = new G4Tubs("fGermaniumSolid",0.*cm,3.81*cm,
115 1.27*cm, 0.*deg, 360.*deg);
116 G4LogicalVolume* fGermaniumLogical =
117 new G4LogicalVolume(fGermaniumSolid,fGermanium,"fGermaniumLogical");
118 G4VPhysicalVolume* GePhys =
119 new G4PVPlacement(0,G4ThreeVector(),fGermaniumLogical,"fGermaniumPhysical",
120 worldLogical,false,0);
121
122 //
123 //Germanium lattice information
124 //
125
126 // G4LatticeManager gives physics processes access to lattices by volume
127 G4LatticeManager* LM = G4LatticeManager::GetLatticeManager();
128 G4LatticeLogical* GeLogical = LM->LoadLattice(fGermanium, "Ge");
129
130 // G4LatticePhysical assigns G4LatticeLogical a physical orientation
131 G4LatticePhysical* GePhysical =
132 new G4LatticePhysical(GeLogical, GePhys->GetFrameRotation());
133 LM->RegisterLattice(GePhys, GePhysical);
134
135 // NOTE: Above registration can also be done in single step:
136 // G4LatticlePhysical* GePhysical = LM->LoadLattice(GePhys, "Ge");
137
138 //
139 // Aluminum - crystal end caps. This is where phonon hits are registered
140 //
141 G4VSolid* fAluminumSolid = new G4Tubs("aluminiumSolid",0.*cm,3.81*cm,0.01*cm,
142 0.*deg, 360.*deg);
143
144 G4LogicalVolume* fAluminumLogical =
145 new G4LogicalVolume(fAluminumSolid,fAluminum,"fAluminumLogical");
146 new G4PVPlacement(0,G4ThreeVector(0.,0.,1.28*cm),fAluminumLogical,
147 "fAluminumPhysical",worldLogical,false,0);
148 new G4PVPlacement(0,G4ThreeVector(0.,0.,-1.28*cm),fAluminumLogical,
149 "fAluminumPhysical",worldLogical,false,1);
150
151 //
152 // Visualization attributes
153 //
154 worldLogical->SetVisAttributes(G4VisAttributes::GetInvisible());
155 G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
156 simpleBoxVisAtt->SetVisibility(true);
157 fGermaniumLogical->SetVisAttributes(simpleBoxVisAtt);
158 fAluminumLogical->SetVisAttributes(simpleBoxVisAtt);
159}

◆ Field()

void XDetectorConstruction::Field ( G4bool  bl)
inline

Definition at line 63 of file XDetectorConstruction.hh.

63{ fIfField = bl; }

Member Data Documentation

◆ fLiquidHelium

G4Material* XDetectorConstruction::fLiquidHelium
private

Definition at line 54 of file XDetectorConstruction.hh.

◆ fGermanium

G4Material* XDetectorConstruction::fGermanium
private

Definition at line 55 of file XDetectorConstruction.hh.

◆ fAluminum

G4Material* XDetectorConstruction::fAluminum
private

Definition at line 56 of file XDetectorConstruction.hh.

◆ fTungsten

G4Material* XDetectorConstruction::fTungsten
private

Definition at line 57 of file XDetectorConstruction.hh.

◆ fWorldPhys

G4VPhysicalVolume* XDetectorConstruction::fWorldPhys
private

Definition at line 58 of file XDetectorConstruction.hh.

◆ fConstructed

G4bool XDetectorConstruction::fConstructed
private

Definition at line 59 of file XDetectorConstruction.hh.

◆ fIfField

G4bool XDetectorConstruction::fIfField
private

Definition at line 60 of file XDetectorConstruction.hh.


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

Applications | User Support | Publications | Collaboration