Loading...
Searching...
No Matches
Public Member Functions | List of all members
GB07DetectorConstruction Class Reference

#include <Doxymodules_biasing.h>

Inheritance diagram for GB07DetectorConstruction:
G4VUserDetectorConstruction

Public Member Functions

 GB07DetectorConstruction ()
 
 ~GB07DetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 

Detailed Description

Definition at line 155 of file Doxymodules_biasing.h.

Constructor & Destructor Documentation

◆ GB07DetectorConstruction()

GB07DetectorConstruction::GB07DetectorConstruction ( )

◆ ~GB07DetectorConstruction()

GB07DetectorConstruction::~GB07DetectorConstruction ( )

Definition at line 55 of file GB07DetectorConstruction.cc.

56{}

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * GB07DetectorConstruction::Construct ( )
virtual

Definition at line 60 of file GB07DetectorConstruction.cc.

61{
62 G4Material* worldMaterial = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic");
63 G4Material* defaultMaterial = G4NistManager::Instance()->FindOrBuildMaterial("G4_CONCRETE");
64
65 G4VSolid* solidWorld = new G4Box("World", 10*m, 10*m, 10*m );
66
67 G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, // its solid
68 worldMaterial, // its material
69 "World"); // its name
70
71 G4PVPlacement* physiWorld = new G4PVPlacement(0, // no rotation
72 G4ThreeVector(), // at (0,0,0)
73 logicWorld, // its logical volume
74 "World", // its name
75 0, // its mother volume
76 false, // no boolean operation
77 0); // copy number
78
79 // -----------------------------------
80 // -- volume where biasing is applied:
81 // -----------------------------------
82 G4double halfZ = 1*m;
83 G4VSolid* solidTest = new G4Box("test.solid", 1*m, 1*m, halfZ );
84
85 G4LogicalVolume* logicTest = new G4LogicalVolume(solidTest, // its solid
86 defaultMaterial, // its material
87 "test.logical"); // its name
88
89 new G4PVPlacement(0, // no rotation
90 G4ThreeVector(0,0, halfZ), // put entrance at (0,0,0)
91 logicTest, // its logical volume
92 "test.physical", // its name
93 logicWorld, // its mother volume
94 false, // no boolean operation
95 0); // copy number
96
97
98 // ------------------------------------------------------------
99 // -- volume to tally exiting particles, put next to above one:
100 // ------------------------------------------------------------
101 G4double halfZtally = 0.5*mm;
102 G4VSolid* solidTally = new G4Box("tally.solid", 1*m, 1*m, halfZtally );
103 G4LogicalVolume* logicTally = new G4LogicalVolume(solidTally, // its solid
104 worldMaterial, // its material
105 "tally.logical"); // its name
106
107 new G4PVPlacement(0, // no rotation
108 G4ThreeVector(0,0, 2*halfZ + halfZtally), // put next to test.phys
109 logicTally, // its logical volume
110 "tally.physical", // its name
111 logicWorld, // its mother volume
112 false, // no boolean operation
113 0); // copy number
114
115
116 return physiWorld;
117}

◆ ConstructSDandField()

void GB07DetectorConstruction::ConstructSDandField ( )
virtual

Definition at line 121 of file GB07DetectorConstruction.cc.

122{
123 // -- Fetch volume for biasing:
124 G4LogicalVolume* logicTest = G4LogicalVolumeStore::GetInstance()->GetVolume("test.logical");
125
126 // ----------------------------------------------
127 // -- operator creation and attachment to volume:
128 // ----------------------------------------------
130 testMany->AttachTo(logicTest);
131 G4cout << " Attaching biasing operator " << testMany->GetName()
132 << " to logical volume " << logicTest->GetName()
133 << G4endl;
134
135 // ---------------------------------------------------------------------------------
136 // -- Attach sensitive detector to print information on particle exiting the shield:
137 // ---------------------------------------------------------------------------------
138 // -- create and register sensitive detector code module:
139 G4SDManager* SDman = G4SDManager::GetSDMpointer();
140 G4VSensitiveDetector* sd = new GB07SD("Tally");
141 SDman->AddNewDetector(sd);
142 // -- Fetch volume for sensitivity and attach sensitive module to it:
143 G4LogicalVolume* logicSD =
144 G4LogicalVolumeStore::GetInstance()->GetVolume("tally.logical");
145 logicSD->SetSensitiveDetector(sd);
146}

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

Applications | User Support | Publications | Collaboration