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

#include <B4dDetectorConstruction.hh>

Inheritance diagram for B4dDetectorConstruction:
G4VUserDetectorConstruction

Public Member Functions

 B4dDetectorConstruction ()
 
virtual ~B4dDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Detector construction class to define materials and geometry. The calorimeter is a box made of a given number of layers. A layer consists of an absorber plate and of a detection gap. The layer is replicated.

Four parameters define the geometry of the calorimeter :

In ConstructSDandField() sensitive detectors of G4MultiFunctionalDetector type with primitive scorers are created and associated with the Absorber and Gap volumes. In addition a transverse uniform magnetic field is defined via G4GlobalMagFieldMessenger class.

Definition at line 56 of file B4dDetectorConstruction.hh.

Constructor & Destructor Documentation

B4dDetectorConstruction::B4dDetectorConstruction ( )

Definition at line 63 of file B4dDetectorConstruction.cc.

65  fCheckOverlaps(true)
66 {
67 }
B4dDetectorConstruction::~B4dDetectorConstruction ( )
virtual

Definition at line 71 of file B4dDetectorConstruction.cc.

72 {
73 }

Member Function Documentation

G4VPhysicalVolume * B4dDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 77 of file B4dDetectorConstruction.cc.

78 {
79  // Define materials
80  DefineMaterials();
81 
82  // Define volumes
83  return DefineVolumes();
84 }
void B4dDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 277 of file B4dDetectorConstruction.cc.

References G4SDManager::GetSDMpointer(), G4AutoDelete::Register(), G4MultiFunctionalDetector::RegisterPrimitive(), G4VPrimitiveScorer::SetFilter(), G4VUserDetectorConstruction::SetSensitiveDetector(), G4GlobalMagFieldMessenger::SetVerboseLevel(), and G4SDManager::SetVerboseLevel().

278 {
280  //
281  // Scorers
282  //
283 
284  // declare Absorber as a MultiFunctionalDetector scorer
285  //
286  G4MultiFunctionalDetector* absDetector
287  = new G4MultiFunctionalDetector("Absorber");
288 
289  G4VPrimitiveScorer* primitive;
290  primitive = new G4PSEnergyDeposit("Edep");
291  absDetector->RegisterPrimitive(primitive);
292 
293  primitive = new G4PSTrackLength("TrackLength");
294  G4SDChargedFilter* charged = new G4SDChargedFilter("chargedFilter");
295  primitive ->SetFilter(charged);
296  absDetector->RegisterPrimitive(primitive);
297 
298  SetSensitiveDetector("AbsoLV",absDetector);
299 
300  // declare Gap as a MultiFunctionalDetector scorer
301  //
302  G4MultiFunctionalDetector* gapDetector
303  = new G4MultiFunctionalDetector("Gap");
304 
305  primitive = new G4PSEnergyDeposit("Edep");
306  gapDetector->RegisterPrimitive(primitive);
307 
308  primitive = new G4PSTrackLength("TrackLength");
309  primitive ->SetFilter(charged);
310  gapDetector->RegisterPrimitive(primitive);
311 
312  SetSensitiveDetector("GapLV",gapDetector);
313 
314  //
315  // Magnetic field
316  //
317  // Create global magnetic field messenger.
318  // Uniform magnetic field is then created automatically if
319  // the field value is not zero.
320  G4ThreeVector fieldValue = G4ThreeVector();
321  fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue);
322  fMagFieldMessenger->SetVerboseLevel(1);
323 
324  // Register the field messenger for deleting
325  G4AutoDelete::Register(fMagFieldMessenger);
326 }
void SetVerboseLevel(G4int verboseLevel)
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
CLHEP::Hep3Vector G4ThreeVector
void SetVerboseLevel(G4int vl)
Definition: G4SDManager.hh:90
void SetFilter(G4VSDFilter *f)
void Register(T *inst)
Definition: G4AutoDelete.hh:65
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40

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