5 #ifndef CONSTRUCTION_HH
6 #define CONSTRUCTION_HH
8 #include "G4VUserDetectorConstruction.hh"
9 #include "G4VPhysicalVolume.hh"
10 #include "G4LogicalVolume.hh"
11 #include "G4VSolid.hh"
14 #include "G4MultiUnion.hh"
15 #include "G4SubtractionSolid.hh"
16 #include "G4PVPlacement.hh"
17 #include "G4NistManager.hh"
18 #include "G4SystemOfUnits.hh"
19 #include "G4VisAttributes.hh"
20 #include "G4GenericMessenger.hh"
21 #include "G4OpticalSurface.hh"
22 #include "G4LogicalSkinSurface.hh"
47 inline G4LogicalVolume *GetCosmicTriggerVolume()
const {
return fCosmicTriggerVolume; }
48 inline G4LogicalVolume *GetDecayTriggerVolume()
const {
return fDecayTriggerVolume; }
69 void ConstructCosmicRaysDetectors();
84 void PositionSiPMs(G4VPhysicalVolume *physFrontSiPM, G4VPhysicalVolume *physBackSiPM, G4int row, G4int col, G4int index);
100 *logicCosmicRaysDetector;
104 *fDecayTriggerVolume,
105 *fCosmicTriggerVolume;
130 fIsCosmicRaysDetectors;
Mandatory user initialization concrete class of G4VUserDetectorConstruction. It represents the whole ...
MyDetectorConstruction()
Constructor of the class.
void ConstructASiPM()
Auxiliary function called by Construct() for building only one SiPM.
void DefineVisAttributes()
Defines the visualization attributes for every component of the apparatus.
G4LogicalVolume * fScoringVolume
Pointer used to define the logical volume of the scoring volume. In the application it is assigned to...
G4LogicalVolume * GetScoringVolume() const
Get the scoring volume. It will be used by MySteppingAction::UserSteppingAction().
void ConstructGrease()
Auxiliary function called by Construct() for building the optical grease.
G4LogicalVolume * logicGrease
Pointer to optical grease logical volume.
G4LogicalVolume * logicPCB
Pointer to PCB logical volume.
G4Material * fLYSO
Pointer to the LYSO material.
G4int nLightGuideMat
Indicates which material has to be used for light guides; 1 for plexiglass, 2 for sapphire.
G4Material * fAir
Pointer to the air material.
G4LogicalVolume * logicWorld
Pointer to world logical volume.
G4LogicalVolume * logicScintillator
Pointer to crystal logical volume.
G4LogicalVolume * logicDetector
Pointer to silicon layer of SiPM logical volume.
G4Material * fEpoxy
Pointer to the epoxy material.
G4LogicalVolume * logicCoating
Pointer to coating logical volume.
G4Material * fSapphire
Pointer to the sapphire material.
G4Material * fPlexiglass
Pointer to the plexiglass material.
G4bool fIsLightGuide
Flag indicating whether the light guides must be constructed.
G4LogicalVolume * logicPackageSiPM
Pointer to SiPM package logical volume.
G4Material * fFR4
Pointer to the FR4 material.
G4bool fIsEndcap
Flag indicating whether the endcaps must be constructed.
G4Material * fVacuum
Pointer to the vacuum material.
G4LogicalVolume * logicWindowSiPM
Pointer to SiPM window logical volume.
G4Material * fGrease
Pointer to the optical grease material.
G4LogicalVolume * logicEndcap
Pointer to endcap logical volume.
G4GenericMessenger * fMessenger
Generic messenger of the class.
~MyDetectorConstruction() override=default
Destructor of the class.
void DefineCommands()
Defines new user commands for detector construction.
void ConstructEndcap()
Auxiliary function called by Construct() for building the endcaps.
void ConstructLightGuide()
Auxiliary function called by Construct() for building the lightguides.
void ConstructPCB()
Auxiliary function called by Construct() for building the PCBs.
G4LogicalVolume * logicLightGuide
Pointer to light guide logical volume.
void PositionSiPMs(G4VPhysicalVolume *physFrontSiPM, G4VPhysicalVolume *physBackSiPM, G4int row, G4int col, G4int index)
Auxiliary function called by Construct() for putting in the right position every SiPM.
G4bool fIsOpticalGreaseSurface
Flag indicating whether the optical grease surface must be constructed.
G4Material * fSilicon
Pointer to the silicon material.
G4Material * fCarbonFiber
Pointer to the carbon fiber material.
void ConstructSDandField() override
It sets all the SiPMs' silicon layers as sensitive detectors.
G4VPhysicalVolume * Construct() override
Construct the detector geometry.
G4bool fIsPCB
Flag indicating whether the PCBs must be constructed.
G4OpticalSurface * fOpGreaseSurface
Pointer to the optical grease surface.
G4bool fIsGrease
Flag indicating whether the optical grease must be constructed.
G4bool fIsASiPM
Flag indicating whether only one SiPM must be constructed.
void DefineMaterials()
Defines all materials.
Declaration of the class MySensitiveDetector.
Definition of the namespace GS.