ACTARSim
ACTAR TPC Simulation Reference Guide
ActarSimSciDetectorConstruction.hh
Go to the documentation of this file.
1 // - AUTHOR: Hector Alvarez-Pol 04/2008
2 /******************************************************************
3  * Copyright (C) 2005-2016, Hector Alvarez-Pol *
4  * All rights reserved. *
5  * *
6  * License according to GNU LESSER GPL (see lgpl-3.0.txt). *
7  * For the list of contributors see CREDITS. *
8  ******************************************************************/
9 
10 #ifndef ActarSimSciDetectorConstruction_h
11 #define ActarSimSciDetectorConstruction_h 1
12 
13 #include "globals.hh"
14 #include "G4ThreeVector.hh"
15 
16 class G4LogicalVolume;
17 class G4VPhysicalVolume;
18 class G4Material;
21 
23 private:
24  G4Material* sciBulkMaterial; ///< Pointer to the material the scintillator is made of
25 
26  ActarSimSciDetectorMessenger* sciMessenger; ///< Pointer to the Messenger
27  ActarSimDetectorConstruction* detConstruction; ///< Pointer to the global detector
28 
29  /// 6 bits to indicate which sci wall is present (1) or absent (0)
30  /// order is:
31  /// - bit1 (lsb) beam output wall
32  /// - bit2 lower (gravity based) wall
33  /// - bit3 upper (gravity based) wall
34  /// - bit4 left (from beam point of view) wall
35  /// - bit5 right (from beam point of view) wall
36  /// - bit6 (msb) beam entrance wall
37  G4int sideCoverage;
38 
39  G4double xBoxSciHalfLength; ///< Scintillator box half length along X (X is horizontal)
40  G4double yBoxSciHalfLength; ///< Scintillator box half length along Y (Y is vertical)
41  G4double zBoxSciHalfLength; ///< Scintillator box half length along Z (Z is along beam)
42 
43  G4VPhysicalVolume* ConstructSci(G4LogicalVolume*);
44 
45 public:
48 
49  G4VPhysicalVolume* Construct(G4LogicalVolume*);
50 
51  void SetSciBulkMaterial (G4String);
52  void SetSideCoverage(G4int cov){sideCoverage = cov;}
53  void SetXBoxSciHalfLength(G4double xBox){xBoxSciHalfLength=xBox;}
54  void SetYBoxSciHalfLength(G4double yBox){yBoxSciHalfLength=yBox;}
55  void SetZBoxSciHalfLength(G4double zBox){zBoxSciHalfLength=zBox;}
56 
57  G4Material* GetSciBulkMaterial() {return sciBulkMaterial;}
58 
59  G4int GetSideCoverage(){return sideCoverage;}
63 
64  void UpdateGeometry();
66 };
67 #endif
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction function.
ActarSimSciDetectorMessenger * sciMessenger
Pointer to the Messenger.
G4VPhysicalVolume * ConstructSci(G4LogicalVolume *)
void SetSciBulkMaterial(G4String)
Set the material the scintillator bulk is made of.
G4Material * sciBulkMaterial
Pointer to the material the scintillator is made of.
G4double xBoxSciHalfLength
Scintillator box half length along X (X is horizontal)
ActarSimSciDetectorConstruction(ActarSimDetectorConstruction *)
Constructor. Sets the material and the pointer to the Messenger.
G4double zBoxSciHalfLength
Scintillator box half length along Z (Z is along beam)
void UpdateGeometry()
Updates Scintillator detector.
void PrintDetectorParameters()
Prints Scintillator detector parameters. TODO: To be filled.
ActarSimDetectorConstruction * detConstruction
Pointer to the global detector.
G4double yBoxSciHalfLength
Scintillator box half length along Y (Y is vertical)