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

#include <Doxymodules_biasing.h>

Inheritance diagram for RMC01DetectorConstruction:
G4VUserDetectorConstruction

Public Member Functions

 RMC01DetectorConstruction ()
 
virtual ~RMC01DetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
void UpdateGeometry ()
 
void SetSensitiveVolumeHeight (G4double h)
 
void SetSensitiveVolumeRadius (G4double r)
 
void SetShieldingThickness (G4double d)
 

Private Member Functions

void DefineMaterials ()
 
G4VPhysicalVolumeConstructSimpleGeometry ()
 

Private Attributes

RMC01DetectorMessengerfDetectorMessenger
 
G4double fShield_Thickness
 
G4double fSensitive_cylinder_H
 
G4double fSensitive_cylinder_Rout
 

Detailed Description

Definition at line 172 of file Doxymodules_biasing.h.

Constructor & Destructor Documentation

◆ RMC01DetectorConstruction()

RMC01DetectorConstruction::RMC01DetectorConstruction ( )

◆ ~RMC01DetectorConstruction()

RMC01DetectorConstruction::~RMC01DetectorConstruction ( )
virtual

Definition at line 77 of file RMC01DetectorConstruction.cc.

78{ delete fDetectorMessenger;
79}

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * RMC01DetectorConstruction::Construct ( )
virtual

Definition at line 83 of file RMC01DetectorConstruction.cc.

◆ UpdateGeometry()

void RMC01DetectorConstruction::UpdateGeometry ( )

◆ SetSensitiveVolumeHeight()

void RMC01DetectorConstruction::SetSensitiveVolumeHeight ( G4double  h)

Definition at line 256 of file RMC01DetectorConstruction.cc.

258}

◆ SetSensitiveVolumeRadius()

void RMC01DetectorConstruction::SetSensitiveVolumeRadius ( G4double  r)

Definition at line 250 of file RMC01DetectorConstruction.cc.

◆ SetShieldingThickness()

void RMC01DetectorConstruction::SetShieldingThickness ( G4double  d)

Definition at line 262 of file RMC01DetectorConstruction.cc.

264}

◆ DefineMaterials()

void RMC01DetectorConstruction::DefineMaterials ( )
private

Definition at line 91 of file RMC01DetectorConstruction.cc.

92{
93
94 G4String symbol; //a=mass of a mole;
95 G4double a, z, density; //z=mean number of protons;
96 G4double fractionmass;
97 G4int ncomponents;
98
99 //
100 // define Elements
101 //
102
103 G4Element* N = new G4Element("Nitrogen",symbol="N" , z= 7., a= 14.01*g/mole);
104 G4Element* O = new G4Element("Oxygen" ,symbol="O" , z= 8., a= 16.00*g/mole);
105
106 //
107 // define simple materials
108 //
109
110 new G4Material("Aluminum", z=13., a=26.98*g/mole, density=2.700*g/cm3);
111 new G4Material("Silicon", z=14., a=28.09*g/mole, density=2.33*g/cm3);
112 new G4Material("Tantalum", z=73., a=180.9479*g/mole, density=16.654*g/cm3);
113
114 //
115 // define air
116 //
117
118 G4Material* Air = new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2);
119 Air->AddElement(N, fractionmass=0.7);
120 Air->AddElement(O, fractionmass=0.3);
121
122 //
123 //Example of Vacuum
124 //
125
126 new G4Material("Vacuum", z=1., a=1.01*g/mole,density= universe_mean_density,
127 kStateGas, 3.e-18*pascal, 2.73*kelvin);
128}
std::vector< ExP01TrackerHit * > a

◆ ConstructSimpleGeometry()

G4VPhysicalVolume * RMC01DetectorConstruction::ConstructSimpleGeometry ( )
private

Definition at line 132 of file RMC01DetectorConstruction.cc.

133{
134
135 // Clean old geometry, if any
136
137 G4GeometryManager::GetInstance()->OpenGeometry();
138 G4PhysicalVolumeStore::GetInstance()->Clean();
139 G4LogicalVolumeStore::GetInstance()->Clean();
140 G4SolidStore::GetInstance()->Clean();
141
142 // World
143 //-----------
144
145 G4Box* solidWorld = new G4Box("World",15.*cm, 15.*cm, 15.*cm);
146 G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld,
147 G4Material::GetMaterial("Vacuum"),
148 "World");
149
150 G4VPhysicalVolume* physiWorld = new G4PVPlacement(0, //no rotation
151 G4ThreeVector(), //at (0,0,0)
152 logicWorld, //its logical volume
153 "World", //its name
154 0, //its mother volume
155 false, //no boolean operation
156 0);
157
158 //Shielding Aluminum Sphere
159 //-------------------
160
161 G4double radiusShieldingSphere =10.*cm;
162
163 G4Orb* solidShieldingSphere=new G4Orb("Shielding", radiusShieldingSphere);
164 G4LogicalVolume* logicShieldingSphere=
165 new G4LogicalVolume(solidShieldingSphere,
166 G4Material::GetMaterial("Aluminum"),
167 "Shielding"); //its name;
168
169 new G4PVPlacement(0, //no rotation
170 G4ThreeVector(), //at (0,0,0)
171 logicShieldingSphere, //its logical volume
172 "Shielding", //its name
173 logicWorld, //its mother volume
174 false, //no boolean operation
175 0);
176
177 //Bulk Sphere
178 //-------------------
179
180 G4Orb* solidBulkSphere=new G4Orb("Bulk",
181 radiusShieldingSphere-fShield_Thickness);
182 G4LogicalVolume* logicBulkSphere=new G4LogicalVolume(
183 solidBulkSphere,//its solid
184 G4Material::GetMaterial("Air"),//its material
185 "Bulk"); //its name;
186
187 new G4PVPlacement(0, //no rotation
188 G4ThreeVector(), //at (0,0,0)
189 logicBulkSphere, //its logical volume
190 "Bulk", //its name
191 logicShieldingSphere, //its mother volume
192 false, //no boolean operation
193 0);
194
195 //Detecting cylinder
196 //-------------------
197
198 G4Tubs* solidDetecting=new G4Tubs("SensitiveVolume",
200 0.,twopi);
201
202 G4LogicalVolume* logicDetectingCylinder=new G4LogicalVolume(solidDetecting,
203 G4Material::GetMaterial("Silicon"),
204 "SensitiveVolume");
205
206 new G4PVPlacement(0, //no rotation
207 G4ThreeVector(0.,0.,0.), //at (0,0,0)
208 logicDetectingCylinder, //its logical volume
209 "SensitiveVolume", //its name
210 logicBulkSphere, //its mother volume
211 false, //no boolean operation
212 0);
213
214
215 RMC01SD* theSensitiveDetector = new RMC01SD("/SensitiveCylinder");
216
217 G4SDManager::GetSDMpointer()->AddNewDetector(theSensitiveDetector);
218 logicDetectingCylinder->SetSensitiveDetector(theSensitiveDetector);
219
220 //Tantalum Plates on the top and beside
221 //-------------------------------------
222 G4Box* solidPlate=new G4Box("TantalumPlate",4.*cm,4.*cm,0.25*mm);
223 G4LogicalVolume* logicPlate=new G4LogicalVolume(solidPlate, //its solid
224 G4Material::GetMaterial("Tantalum"),//its material
225 "TantalumPlate"); //its name;
226
227
228 new G4PVPlacement(0, //no rotation
229 G4ThreeVector(0.,0.,6.*cm), //at (0,0,0)
230 logicPlate, //its logical volume
231 "TantalumPlate1", //its name
232 logicBulkSphere, //its mother volume
233 false, //no boolean operation
234 0);
235
236 new G4PVPlacement(0, //no rotation
237 G4ThreeVector(0.,0.,-6.*cm), //at (0,0,0)
238 logicPlate, //its logical volume
239 "TantalumPlate2", //its name
240 logicBulkSphere, //its mother volume
241 false, //no boolean operation
242 0);
243
244 return physiWorld;
245
246}

Member Data Documentation

◆ fDetectorMessenger

RMC01DetectorMessenger* RMC01DetectorConstruction::fDetectorMessenger
private

Definition at line 74 of file RMC01DetectorConstruction.hh.

◆ fShield_Thickness

G4double RMC01DetectorConstruction::fShield_Thickness
private

Definition at line 78 of file RMC01DetectorConstruction.hh.

◆ fSensitive_cylinder_H

G4double RMC01DetectorConstruction::fSensitive_cylinder_H
private

Definition at line 79 of file RMC01DetectorConstruction.hh.

◆ fSensitive_cylinder_Rout

G4double RMC01DetectorConstruction::fSensitive_cylinder_Rout
private

Definition at line 80 of file RMC01DetectorConstruction.hh.


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

Applications | User Support | Publications | Collaboration