8#include "OMSimOpticalModule.hh"
16 mDOM(G4bool p_placeHarness =
true);
24 ss <<
"/mDOM/" << m_index;
43 G4SubtractionSolid *equatorialReflector(G4VSolid *pSupportStructure, G4Cons *pReflCone, G4double pAngle, G4String pSuffix);
44 void setPMTPositions();
45 G4UnionSolid *pressureVessel(
const G4double pOutRad, G4String pSuffix);
46 G4SubtractionSolid *substractHarnessPlug(G4VSolid *pSolid);
47 std::tuple<G4SubtractionSolid *, G4UnionSolid *> supportStructure();
48 G4SubtractionSolid *substractFlashers(G4VSolid *lSupStructureSolid);
49 void setLEDPositions();
51 G4bool m_placeHarness =
true;
52 G4bool m_harnessUnion =
true;
53 std::vector<G4ThreeVector> m_positionsPMT;
54 std::vector<G4RotationMatrix> m_PMTRotations;
55 std::vector<G4RotationMatrix> m_PMTRotPhi;
56 std::vector<G4ThreeVector> m_reflectorPositions;
59 G4double m_refConeIdealInRad;
76 const G4double m_thetaPolar = 33.0 * deg;
77 const G4double m_thetaEquatorial = 72.0 * deg;
78 const G4int m_numberPolarPMTs = 4;
79 const G4int m_numberEqPMTs = 8;
80 const G4int mRefConeAngle = 51;
81 const G4double m_polarEquatorialPMTphiPhase = 0 * deg;
82 const G4int m_totalNumberPMTs = (m_numberPolarPMTs + m_numberEqPMTs) * 2;
85 const G4double m_thetaEqLED = 61 * deg;
86 const G4double m_thetaPolLED = 8.2 * deg;
Defines the mDOMFlasher class for simulating the 10 flashers in an mDOM optical module.
Construction of the PMTs.
Base class for OMs works as interface.
Definition OMSimOpticalModule.hh:23
The mDOMFlasher class represents the 10 flashers in an mDOM optical module.
Definition OMSimMDOMFlasher.hh:45
void runBeamOnFlasher(mDOM *pMDOMInstance, G4int pModuleIndex, G4int pLEDIndex)
run/beamOn the specified flasher.
Definition OMSimMDOMFlasher.cc:90
Definition OMSimMDOMHarness.hh:13
Definition OMSimMDOM.hh:13
const G4double m_glassThick
maximum Glass thickness
Definition OMSimMDOM.hh:60
const G4double m_gelThickness
distance between inner glass surface and holding structure, filled with gel
Definition OMSimMDOM.hh:70
void construction()
Abstract method you have to define in order to make a derived class from OMSimDetectorComponent.
Definition OMSimMDOM.cc:48
double getPressureVesselWeight()
Virtual method to get the weight of the pressure vessel.
Definition OMSimMDOM.hh:19
const G4double m_glassOutRad
outer radius of galss cylinder (pressure vessel)
Definition OMSimMDOM.hh:64
const G4double m_reflectorHalfZ
half-height of reflector (before cutting to right form)
Definition OMSimMDOM.hh:73
const G4double m_reflectorConeToHolder
horizontal distance from K??rcher's construction
Definition OMSimMDOM.hh:75
const G4double m_cylinderAngle
Deviation angle of cylindrical part of the pressure vessel.
Definition OMSimMDOM.hh:63
std::vector< std::vector< G4double > > m_LEDAngFromSphere
stores rho (mm),theta (deg),phi (deg) of each LED from the center of its corresponding spherical part...
Definition OMSimMDOM.hh:30
const G4double m_EqPMTzOffset
z-offset of middle PMT circles w.r.t. center of glass sphere
Definition OMSimMDOM.hh:72
const G4double m_cylinderHeight
height of cylindrical part of glass half-vessel
Definition OMSimMDOM.hh:65
const G4double m_EqPMTrOffset
middle PMT circles are slightly further out due to m_EqPMTzOffset
Definition OMSimMDOM.hh:71
std::vector< G4Transform3D > m_LEDTransformers
coordinates from center of the module
Definition OMSimMDOM.hh:29
const G4double m_gelThicknessFrontPMT
distance between inner glass surface and tip of PMTs
Definition OMSimMDOM.hh:69
int getNumberOfPMTs()
Virtual method to get the number of PMTs in the optical module.
Definition OMSimMDOM.hh:20
void runBeamOnFlasher(G4int pModuleIndex, G4int pLEDIndex)
run/beamOn the specified flasher.
Definition OMSimMDOM.hh:38
const G4double m_reflectorConeSheetThickness
aluminum sheet thickness true for all reflective cones
Definition OMSimMDOM.hh:74
~mDOM()
Definition OMSimMDOM.cc:15