![]() |
OMSim
Geant4 for IceCube optical module studies
|
Public Member Functions | |
mDOM (G4bool p_placeHarness=true) | |
~mDOM () | |
void | construction () |
Abstract method you have to define in order to make a derived class from OMSimDetectorComponent. | |
double | getPressureVesselWeight () |
Virtual method to get the weight of the pressure vessel. | |
int | getNumberOfPMTs () |
Virtual method to get the number of PMTs in the optical module. | |
G4String | getName () |
void | runBeamOnFlasher (G4int pModuleIndex, G4int pLEDIndex) |
run/beamOn the specified flasher. | |
![]() | |
OMSimOpticalModule (OMSimPMTConstruction *pPMTManager) | |
void | configureSensitiveVolume (OMSimDetectorConstruction *pDetConst) |
OMSimPMTConstruction * | getPMTmanager () |
![]() | |
void | appendComponent (G4VSolid *pSolid, G4LogicalVolume *pLogical, G4ThreeVector pVector, G4RotationMatrix pRotation, G4String pName) |
Append component to Components vector. | |
G4bool | checkIfExists (G4String pName) |
Check if a component with a certain name exists in the Components map. | |
Component | getComponent (G4String pName) |
Retrieves a specified component from the Components map. | |
G4Transform3D | getNewPosition (G4ThreeVector pPosition, G4RotationMatrix pRotation, G4ThreeVector pObjectPosition, G4RotationMatrix pObjectRotation) |
Computes a new position for a sub-component, based on a given global position and rotation. | |
void | integrateDetectorComponent (OMSimDetectorComponent *pToIntegrate, G4ThreeVector pPosition, G4RotationMatrix pRotation, G4String pNameExtension) |
Integrates the components of another OMSimDetectorComponent instance. | |
void | deleteComponent (G4String pName) |
Deletes a specified component from the Components map. | |
void | placeIt (G4ThreeVector pPosition, G4RotationMatrix pRotation, G4LogicalVolume *&pMother, G4String pNameExtension="") |
Placement of the DetectorComponent. Each Component is placed in the same mother. | |
void | placeIt (G4Transform3D pTrans, G4LogicalVolume *&pMother, G4String pNameExtension="") |
Places the components in a specified mother volume using a provided transformation. | |
G4SubtractionSolid * | substractToVolume (G4VSolid *pInputVolume, G4ThreeVector pSubstractionPos, G4RotationMatrix pSubstractionRot, G4String pNewVolumeName) |
Subtracts components from a given solid volume using position and rotation. | |
G4SubtractionSolid * | substractToVolume (G4VSolid *pInputVolume, G4Transform3D pTrans, G4String pNewVolumeName) |
Subtracts components from a given solid volume. | |
Public Attributes | |
G4int | m_NrTotalLED |
std::vector< G4Transform3D > | m_LEDTransformers |
coordinates from center of the module | |
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. Useful to run the particles. | |
const G4double | m_cylinderAngle = 2.8 * deg |
Deviation angle of cylindrical part of the pressure vessel. | |
const G4double | m_glassOutRad = 176.5 * mm |
outer radius of galss cylinder (pressure vessel) | |
const G4double | m_cylinderHeight = 27.5 * mm |
height of cylindrical part of glass half-vessel | |
const G4double | m_glassInRad = m_glassOutRad - m_glassThick |
![]() | |
G4int | m_index |
![]() | |
OMSimInputData * | m_data |
Instance of OMSimInputdata, which should be started only once. | |
bool | m_checkOverlaps = true |
std::vector< G4ThreeVector > | m_placedPositions |
store the positions each time the components are placed | |
std::vector< G4RotationMatrix > | m_placedOrientations |
store the orientations each time the components are placed | |
std::vector< G4Transform3D > | m_placedTranslations |
store the translation each time the components are placed | |
std::map< G4String, Component > | m_components |
dictionary with each component | |
std::map< G4String, G4PVPlacement * > | m_lastPhysicals |
dictionary with the (last) G4PVPlacement of each component mComponents produced after calling placeIt | |
Private Attributes | |
mDOMFlasher * | m_flashers |
mDOMHarness * | m_harness |
G4bool | m_placeHarness = true |
G4bool | m_harnessUnion = true |
std::vector< G4ThreeVector > | m_positionsPMT |
std::vector< G4RotationMatrix > | m_PMTRotations |
std::vector< G4RotationMatrix > | m_PMTRotPhi |
std::vector< G4ThreeVector > | m_reflectorPositions |
G4double | m_PMToffset |
G4double | m_refConeIdealInRad |
const G4double | m_glassThick = 13.5 * mm |
maximum Glass thickness | |
const G4double | m_gelThicknessFrontPMT = 3.6 * mm |
distance between inner glass surface and tip of PMTs | |
const G4double | m_gelThickness = 4.5 * mm |
distance between inner glass surface and holding structure, filled with gel | |
const G4double | m_EqPMTrOffset = 2.6 * mm |
middle PMT circles are slightly further out due to m_EqPMTzOffset | |
const G4double | m_EqPMTzOffset = 10.0 * mm |
z-offset of middle PMT circles w.r.t. center of glass sphere | |
const G4double | m_reflectorHalfZ = 15 * mm |
half-height of reflector (before cutting to right form) | |
const G4double | m_reflectorConeSheetThickness = 0.5 * mm |
aluminum sheet thickness true for all reflective cones | |
const G4double | m_reflectorConeToHolder = 1.55 * mm |
horizontal distance from K??rcher's construction | |
const G4double | m_thetaPolar = 33.0 * deg |
const G4double | m_thetaEquatorial = 72.0 * deg |
const G4int | m_numberPolarPMTs = 4 |
const G4int | m_numberEqPMTs = 8 |
const G4int | mRefConeAngle = 51 |
const G4double | m_polarEquatorialPMTphiPhase = 0 * deg |
const G4int | m_totalNumberPMTs = (m_numberPolarPMTs + m_numberEqPMTs) * 2 |
const G4double | m_supStructureRad = m_glassOutRad - m_glassThick - m_gelThickness |
const G4double | m_thetaEqLED = 61 * deg |
const G4double | m_thetaPolLED = 8.2 * deg |
Additional Inherited Members | |
![]() | |
OMSimPMTConstruction * | m_managerPMT |
![]() | |
static const G4VisAttributes | m_glassVis = G4VisAttributes(G4Colour(0.7, 0.7, 0.8, 0.25)) |
static const G4VisAttributes | m_PMTglassVis = G4VisAttributes(G4Colour(0.7, 0.7, 0.8, 0.4)) |
static const G4VisAttributes | m_gelVis = G4VisAttributes(G4Colour(0.45, 0.5, 0.35, 0.2)) |
static const G4VisAttributes | m_gelpadVis = G4VisAttributes(G4Colour(0.45, 0.5, 0.35, 0.3)) |
static const G4VisAttributes | m_steelVis = G4VisAttributes(G4Colour(0.6, 0.6, 0.7, 1.0)) |
static const G4VisAttributes | m_aluVis = G4VisAttributes(G4Colour(0.8, 0.8, 0.9, 1.0)) |
static const G4VisAttributes | m_whiteVis = G4VisAttributes(G4Colour(1, 1, 1, 1.0)) |
static const G4VisAttributes | m_absorberSemiTransparentVis = G4VisAttributes(G4Colour(0.2, 0.2, 0.2, 0.5)) |
static const G4VisAttributes | m_absorberVis = G4VisAttributes(G4Colour(0.2, 0.2, 0.2, 1.0)) |
static const G4VisAttributes | m_boardVis = G4VisAttributes(G4Colour(0, 0.6, 0, 1)) |
static const G4VisAttributes | m_blueVis = G4VisAttributes(G4Colour(0, 0, 1, 1)) |
static const G4VisAttributes | m_airVis = G4VisAttributes(G4Colour(0.7, 0.7, 0.8, 0.2)) |
static const G4VisAttributes | m_airVis2 = G4VisAttributes(G4Colour(0.0, 0, 1., 0.5)) |
static const G4VisAttributes | m_redVis = G4VisAttributes(G4Colour(1.0, 0.0, 0.0, 1)) |
static const G4VisAttributes | m_blackVis = G4VisAttributes(G4Colour(0.0, 0.0, 0.0, 1.0)) |
static const G4VisAttributes | m_LEDvis = G4VisAttributes(G4Colour(0.2, 0.6, 0.8, 0.5)) |
static const G4VisAttributes | m_photocathodeVis = G4VisAttributes(G4Colour(1.0, 0.7, 0.0, 1)) |
static const G4VisAttributes | m_invisibleVis = G4VisAttributes::GetInvisible() |
mDOM::~mDOM | ( | ) |
|
virtual |
Implements OMSimDetectorComponent.
|
inlinevirtual |
Implements OMSimOpticalModule.
|
inlinevirtual |
This method should be overridden in derived classes to provide the number of PMTs in the specific optical module.
Implements OMSimOpticalModule.
|
inlinevirtual |
This method should be overridden in derived classes to provide the weight of the pressure vessel for the specific optical module.
Implements OMSimOpticalModule.
|
inline |