OMSim
Geant4 for IceCube optical module studies
mDOMFlasher Class Reference

The mDOMFlasher class represents the 10 flashers in an mDOM optical module. More...

Inheritance diagram for mDOMFlasher:
[legend]
Collaboration diagram for mDOMFlasher:
[legend]

Detailed Description

This class is responsible for creating the flashers in the mDOM, which includes a LED, the air around it, and a glass window on top of it. This class also has methods for retrieving flasher solids, activating a specific flasher in a particular module, and configuring the GPS for flasher simulations.

Public Member Functions

void construction ()
 Abstract method you have to define in order to make a derived class from OMSimDetectorComponent.
 
std::tuple< G4UnionSolid *, G4UnionSolid *, G4Tubs * > getSolids ()
 
void runBeamOnFlasher (mDOM *pMDOMInstance, G4int pModuleIndex, G4int pLEDIndex)
 run/beamOn the specified flasher. More...
 
- Public Member Functions inherited from OMSimDetectorComponent
void appendComponent (G4VSolid *pSolid, G4LogicalVolume *pLogical, G4ThreeVector pVector, G4RotationMatrix pRotation, G4String pName)
 Append component to Components vector. More...
 
G4bool checkIfExists (G4String pName)
 Check if a component with a certain name exists in the Components map. More...
 
Component getComponent (G4String pName)
 Retrieves a specified component from the Components map. More...
 
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. More...
 
void integrateDetectorComponent (OMSimDetectorComponent *pToIntegrate, G4ThreeVector pPosition, G4RotationMatrix pRotation, G4String pNameExtension)
 Integrates the components of another OMSimDetectorComponent instance. More...
 
void deleteComponent (G4String pName)
 Deletes a specified component from the Components map. More...
 
void placeIt (G4ThreeVector pPosition, G4RotationMatrix pRotation, G4LogicalVolume *&pMother, G4String pNameExtension="")
 Placement of the DetectorComponent. Each Component is placed in the same mother. More...
 
void placeIt (G4Transform3D pTrans, G4LogicalVolume *&pMother, G4String pNameExtension="")
 Places the components in a specified mother volume using a provided transformation. More...
 
G4SubtractionSolid * substractToVolume (G4VSolid *pInputVolume, G4ThreeVector pSubstractionPos, G4RotationMatrix pSubstractionRot, G4String pNewVolumeName)
 Subtracts components from a given solid volume using position and rotation. More...
 
G4SubtractionSolid * substractToVolume (G4VSolid *pInputVolume, G4Transform3D pTrans, G4String pNewVolumeName)
 Subtracts components from a given solid volume. More...
 

Private Member Functions

void makeSolids ()
 
void makeLogicalVolumes ()
 
void readFlasherProfile ()
 Loads profile of mDOM flasher measured in the lab. See Section 7.3 of C. Lozanos PhD Thesis: https://doi.org/10.5281/zenodo.8107177 or Anna-Sophia's Bachelor thesis (german) https://www.uni-muenster.de/imperia/md/content/physik_kp/agkappes/abschlussarbeiten/bachelorarbeiten/ba_tenbruck.pdf.
 
GlobalPosition getFlasherPositionInfo (mDOM *pMDOMInstance, G4int pModuleIndex, G4int pLEDIndex)
 Retrieves the global position and orientation of a specific flasher in an mDOM module. More...
 
void configureGPS (GlobalPosition flasherInfo)
 Configures the GPS for the flasher simulation. More...
 

Private Attributes

G4UnionSolid * m_LEDSolid
 
G4UnionSolid * m_flasherHoleSolid
 
G4Tubs * m_glassWindowSolid
 
G4LogicalVolume * m_flasherHoleLogical
 
G4LogicalVolume * m_glassWindowLogical
 
G4LogicalVolume * m_LEDLogical
 
G4bool m_flasherProfileAvailable = false
 
std::vector< double > m_profileX
 
std::vector< double > m_profileY
 

Additional Inherited Members

- Public Attributes inherited from OMSimDetectorComponent
OMSimInputDatam_data
 Instance of OMSimInputdata, which should be started only once.
 
bool m_checkOverlaps = false
 
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, Componentm_components
 dictionary with each component
 
std::map< G4String, G4PVPlacement * > m_lastPhysicals
 dictionary with the (last) G4PVPlacement of each component mComponents produced after calling placeIt
 
- Static Protected Attributes inherited from OMSimDetectorComponent
static const G4VisAttributes m_glassVis = G4VisAttributes(G4Colour(0.7, 0.7, 0.8, 0.25))
 
static const G4VisAttributes m_gelVis = G4VisAttributes(G4Colour(0.45, 0.5, 0.35, 0.2))
 
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, 1, 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, 1.0, 0.0, 0.1))
 
static const G4VisAttributes m_invisibleVis = G4VisAttributes::GetInvisible()
 

Member Function Documentation

◆ configureGPS()

void mDOMFlasher::configureGPS ( GlobalPosition  pGlobalPos)
private
Parameters
flasherInfoThe position and orientation information of the flasher.

◆ getFlasherPositionInfo()

GlobalPosition mDOMFlasher::getFlasherPositionInfo ( mDOM p_instanceMDOM,
G4int  p_moduleIndex,
G4int  p_LEDIndex 
)
private
Parameters
p_instanceMDOMReference to the mDOM instance, which contains the placement details of the module.
p_moduleIndexIndex of the module.
p_LEDIndexIndex of the flasher within the module.
Returns
The global position and orientation of the flasher, represented by a GlobalPosition struct.

◆ runBeamOnFlasher()

void mDOMFlasher::runBeamOnFlasher ( mDOM p_instanceMDOM,
G4int  p_moduleIndex,
G4int  p_LEDIndex 
)

This method triggers the flasher at the given index in the specified module.

Parameters
p_instanceMDOMThe mDOM instance to access to the placement OM positions and orientations.
p_moduleIndexThe index of the module to be flashed (if only one mDOM placed, then 0, otherwise depending on placeIt() order)
p_LEDIndexThe index of the flasher within the module.

The documentation for this class was generated from the following files: