OMSim
Geant4 for IceCube optical module studies
OMSimSNTools Class Reference

Provides utility methods for generating ENES and IBD interactions. More...

Detailed Description

This class serves as a repository for common functionalities associated with the generation of ENES and IBD interactions within the Supernova (SN) context.

Public Member Functions

G4ThreeVector randomPosition ()
 Randomly determines a vertex position within the generation volume. More...
 
std::pair< std::string, std::string > getFileNames (int value)
 Retrieves file names for neutrino and antineutrino fluxes based on a specified supernova model. More...
 
G4double sampleEnergy (G4double Emean, G4double Emean2, G4double &alpha)
 Randomly samle the energy depending on the properties of the energy spectrum. More...
 
G4double getAlpha (G4double Emean, G4double Emean2)
 Calculates pinching parameter of energy spectrum. More...
 
G4double calculateWeight (G4double sigma, G4double NTargets)
 Calculates the interaction weight based on the cross section and number of targets. More...
 
G4double numberOfTargets (G4int targetPerMolecule)
 Calculates the number of target particles in ice per cubic meter. More...
 

Private Member Functions

bool checkVolumeForOMs (G4ThreeVector position)
 Checks if a given position is within any of the modules. More...
 

Private Attributes

std::vector< G4double > m_DOMpos
 
G4double m_rMin
 

Member Function Documentation

◆ calculateWeight()

G4double OMSimSNTools::calculateWeight ( G4double  p_sigma,
G4double  p_numberTargs 
)

This method computes the interaction weight of neutrinos in the ice using the formula: weight = p_sigma * Nt * r, where:

  • p_sigma is the cross section,
  • Nt is the number of targets in the ice (considered as electrons),
  • r is the distance the neutrino travels in the ice.
Parameters
p_sigmaThe cross section p_value.
p_numberTargsThe number of targets present in the ice for the corresponding interaction.
Warning
It's crucial to note that this formulation is specifically valid for SN neutrinos approaching from the Z axis in a world defined as a cylinder. For any other geometry or conditions, a different approach or adjustments might be required.
Returns
The computed interaction weight for the neutrinos based on the provided parameters.

◆ checkVolumeForOMs()

bool OMSimSNTools::checkVolumeForOMs ( G4ThreeVector  p_position)
private

This method determines whether the provided position lies in the generation medium (ice) It evaluates the position in the context of the global environment and examines the history depth to make this determination.

Parameters
p_positionThe 3D position vector to be checked against module boundaries.
Warning
This relies on the generation module being a single volume (generally, the ice) and the mother volume of everything else If the ice is modified to be composed of different subvolumes (like, for example, if the bubble column is added) this method would need to be modify!
Returns
True if the position is inside a module; otherwise, false.

◆ getAlpha()

G4double OMSimSNTools::getAlpha ( G4double  p_meanEnergy,
G4double  p_meanESquared 
)

Given the mean energy and squared mean energy of the neutrino event, calculates the pinching parameter following equation 3 in Irene Tamborra et al., "High-resolution supernova neutrino spectra represented by a simple fit," PHYSICAL REVIEW D 86, 125031 (2012). https://arxiv.org/abs/1211.3920

Parameters
p_meanEnergyThe primary mean energy p_value from the supernova model.
p_meanESquaredThe primary squared mean energy p_value from the supernova model.
Returns
Pinching parameter of the energy spectrum.

◆ getFileNames()

std::pair< std::string, std::string > OMSimSNTools::getFileNames ( int  p_value)

This function provides the corresponding file names for neutrino and antineutrino fluxes depending on the supernova model identified by the input p_value. Files are located in "supernova/models"

Parameters
p_valueThe integer identifier representing a specific supernova model.
Returns
A pair containing the neutrino and antineutrino flux file names.

◆ numberOfTargets()

G4double OMSimSNTools::numberOfTargets ( G4int  p_numberTargetPerMolecule)

This function determines the number of target particles, given the number of targets per molecule, assuming the ice is pure H2O. The density and molar mass values are based on ice at -50°C.

Parameters
p_numberTargetPerMoleculeNumber of target particles per H2O molecule.
Returns
Total number of target particles per cubic meter in ice.

◆ randomPosition()

G4ThreeVector OMSimSNTools::randomPosition ( )

The vertex is considered valid only if it is located within the ice, ensuring it is not situated inside the module or other predefined volumes.

Returns
A valid vertex position within the ice.

◆ sampleEnergy()

G4double OMSimSNTools::sampleEnergy ( G4double  p_meanEnergy,
G4double  p_meanESquared,
G4double &  p_alpha 
)

Build the energy distribution Fe(E) given the input parameters, and uses the inverse CDF algorithm to sample a p_value for the neutrino energy from Fe(E).

Parameters
p_meanEnergyThe primary mean energy p_value from the supernova model.
p_meanESquaredThe primary squared mean energy p_value from the supernova model.
p_alphaPinching parameter of the energy spectrum.
Returns
The sampled energy p_value based on the given model.

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