OMSim
Geant4 for IceCube optical module studies
Loading...
Searching...
No Matches
OMSimPMTConstruction.hh
Go to the documentation of this file.
1
7#pragma once
10#include "OMSimPMTResponse.hh"
11//#include "OMSimDetectorConstruction.hh"
12
13#include <G4UnionSolid.hh>
14#include <G4Tubs.hh>
16
17
19{
20
21public:
23
24 void construction();
25 void configureSensitiveVolume(OMSimDetectorConstruction* pDetConst, G4String pName);
26
28 G4double getMaxPMTRadius();
29 G4VSolid *getPMTSolid();
30 G4LogicalVolume *getLogicalVolume();
31 G4LogicalVolume* getPhotocathodeLV(){return m_photocathodeLV;};
32 double getPMTGlassWeight();
33
34 void placeIt(G4ThreeVector pPosition, G4RotationMatrix pRotation, G4LogicalVolume *&pMother, G4String pNameExtension = "");
35 void placeIt(G4Transform3D pTrans, G4LogicalVolume *&pMother, G4String pNameExtension = "");
36 void selectPMT(G4String pPMTtoSelect);
37 void includeHAcoating();
38
39private:
40 G4LogicalVolume* m_photocathodeLV;
41 G4String m_selectedPMT;
42 G4bool m_dynodeSystem = false;
43 G4bool m_internalReflections = false;
44 G4bool m_HACoatingBool = false;
45 G4bool m_constructionFinished = false;
46 G4double m_centreToTipDistance;
47 std::tuple<G4VSolid *, G4VSolid *> getBulbSolid(G4String pSide);
48 std::tuple<G4VSolid *, G4VSolid *> simpleBulbConstruction(G4String pSide);
49 std::tuple<G4VSolid *, G4VSolid *> fullBulbConstruction(G4String pSide);
50 G4VSolid *frontalBulbConstruction(G4String pSide);
51
52 void readGlobalParameters(G4String pSide);
53
54 G4VSolid *sphereEllipsePhotocathode(G4String p_side);
55 G4VSolid *doubleEllipsePhotocathode(G4String pSide);
56 G4VSolid *ellipsePhotocathode(G4String p_side);
57
58
59 void constructHAcoating();
60 void constructCathodeBackshield(G4LogicalVolume *pPMTIinner);
61 void constructCADdynodeSystem(G4LogicalVolume *p_mother);
62
64
65 G4bool m_simpleBulb = false;
66 G4double m_missingTubeLength;
67 G4PVPlacement *m_vacuumBackPhysical;
68 G4PVPlacement* m_photocathodeRegionVacuumPhysical;
69 G4OpticalSurface* m_photocathodeOpticalSurface;
70
71 bool m_checkOverlaps;
72
73 // Variables from json files are saved in the following members
74 G4double m_totalLenght;
75 G4double m_tubeWidth;
76 G4double m_outRad;
77 G4double m_ellipseXYaxis;
78 G4double m_ellipseZaxis;
79 G4double m_sphereEllipseTransition_r;
80 G4double m_spherePosY;
81 G4double m_ellipsePosY;
82};
83
Provides helper base class OMSimDetectorComponent for constructing and managing detector components i...
Construction of the PMTs.
Simulation of PMT response.
Abstract base class used for constructing detector components.
Definition OMSimDetectorComponent.hh:26
Class for detector construction in the effective area simulation.
Definition OMSimDetectorConstruction.hh:19
Definition OMSimPMTConstruction.hh:19
void constructCathodeBackshield(G4LogicalVolume *pPMTIinner)
Definition OMSimPMTConstruction.cc:239
void selectPMT(G4String pPMTtoSelect)
Definition OMSimPMTConstruction.cc:459
void placeIt(G4ThreeVector pPosition, G4RotationMatrix pRotation, G4LogicalVolume *&pMother, G4String pNameExtension="")
Definition OMSimPMTConstruction.cc:108
G4VSolid * doubleEllipsePhotocathode(G4String pSide)
Definition OMSimPMTConstruction.cc:382
std::tuple< G4VSolid *, G4VSolid * > simpleBulbConstruction(G4String pSide)
Definition OMSimPMTConstruction.cc:165
OMSimPMTResponse * getPMTResponseInstance()
Creates and configures an instance of OMSimPMTResponse based on PMT model selected.
Definition OMSimPMTConstruction.cc:509
void construction()
Constructs the PMT solid with all its components.
Definition OMSimPMTConstruction.cc:26
G4VSolid * sphereEllipsePhotocathode(G4String p_side)
Definition OMSimPMTConstruction.cc:344
std::tuple< G4VSolid *, G4VSolid * > fullBulbConstruction(G4String pSide)
Definition OMSimPMTConstruction.cc:183
std::tuple< G4VSolid *, G4VSolid * > getBulbSolid(G4String pSide)
Definition OMSimPMTConstruction.cc:143
G4VSolid * getPMTSolid()
Definition OMSimPMTConstruction.cc:442
G4double getDistancePMTCenterToTip()
Definition OMSimPMTConstruction.cc:424
void constructCADdynodeSystem(G4LogicalVolume *p_mother)
Definition OMSimPMTConstruction.cc:257
void readGlobalParameters(G4String pSide)
Reads the parameter table and assigns the value and dimension of member variables.
Definition OMSimPMTConstruction.cc:307
G4double getMaxPMTRadius()
Definition OMSimPMTConstruction.cc:433
G4VSolid * ellipsePhotocathode(G4String p_side)
Definition OMSimPMTConstruction.cc:364
G4LogicalVolume * getLogicalVolume()
Definition OMSimPMTConstruction.cc:450
Class to simulate PMT response.
Definition OMSimPMTResponse.hh:20