Class to simulate PMT response.
More...
Process hits on a photocathode and get resulting pulse properties based on lab. measurement data.
|
| OMSimPMTResponse () |
|
PMTPulse | processPhotocathodeHit (G4double pX, G4double pY, G4double pWavelength) |
| Process a hit on the photocathode into a PMT pulse.
|
|
void | makeQEweightInterpolator (const std::string &p_FileNameAbsorbedFraction) |
| Configures the QE weight interpolator for PMT response.
|
|
void | makeQEInterpolator (const std::string &p_FileName) |
| Creates the QE interpolator from the target QE file.
|
|
void | makeCEweightInterpolator (const std::string &p_FileName) |
| Configures the CE weight interpolator for PMT response.
|
|
void | makeScansInterpolators (const std::string &p_PathToFiles) |
|
void | setScannedWavelengths (std::vector< double > p_wavelengths) |
| Set the scanned wavelengths for the PMT response.
|
|
|
G4double | getCharge (G4double p_WavelengthKey) |
| Retrieve the charge in PE from measurements for a given wavelength.
|
|
G4double | getCharge (G4double p_WavelengthKey1, G4double p_WavelengthKey2) |
| Retrieve the interpolated charge between two given wavelengths.
|
|
G4double | getTransitTime (G4double p_WavelengthKey) |
| Retrieve the transit time from measurements for a given wavelength.
|
|
G4double | getTransitTime (G4double p_WavelengthKey1, G4double p_WavelengthKey2) |
| Retrieve the interpolated transit time between two given wavelengths.
|
|
PMTPulse | getPulseFromInterpolation (G4double p_WavelengthKey1, G4double p_WavelengthKey2) |
|
PMTPulse | getPulseFromKey (G4double p_WavelengthKey) |
|
G4double | wavelengthInterpolatedValue (std::map< G4double, TH2D * > p_Map, G4double p_WavelengthKey1, G4double p_WavelengthKey2) |
|
std::vector< G4double > | getScannedWavelengths () |
| Get the scanned wavelengths for the PMT response.
|
|
|
bool | m_scansInterpolatorsAvailable = false |
|
bool | m_QEWeightInterpolatorAvailable = false |
|
bool | m_QEInterpolatorAvailable = false |
|
bool | m_CEWeightInterpolatorAvailable = false |
|
bool | m_simplePMT |
|
double | m_X |
|
double | m_Y |
|
G4double | m_wavelength |
|
std::vector< G4double > | m_scannedWavelengths |
|
TGraph * | m_relativeDetectionEfficiencyInterpolator |
|
TGraph * | m_QEfileInterpolator |
|
TGraph * | m_weightAbsorbedToQEInterpolator |
|
std::map< G4double, TH2D * > | m_gainG2Dmap |
|
std::map< G4double, TH2D * > | m_gainResolutionG2Dmap |
|
std::map< G4double, TH2D * > | m_transitTimeG2Dmap |
|
std::map< G4double, TH2D * > | m_transitTimeSpreadG2Dmap |
|
◆ OMSimPMTResponse()
OMSimPMTResponse::OMSimPMTResponse |
( |
| ) |
|
- Todo:
- Add PMT data of all PMT types
◆ getCharge() [1/2]
G4double OMSimPMTResponse::getCharge |
( |
G4double |
p_WavelengthKey | ) |
|
|
private |
Charge sampled from a Gaussian distribution with the mean and standard deviation of the single photon electron (SPE) resolution for the provided wavelength key.
- Parameters
-
p_WavelengthKey | The key for selecting a scan from the available measurements. |
- Returns
- G4double The charge in PE.
◆ getCharge() [2/2]
G4double OMSimPMTResponse::getCharge |
( |
G4double |
p_Wavelength1, |
|
|
G4double |
p_Wavelength2 |
|
) |
| |
|
private |
This method interpolates the charge between the two provided wavelengths and then returns the charge sampled from a Gaussian distribution with the mean interpolated charge and interpolated single photon electron (SPE) resolution.
- Parameters
-
p_Wavelength1 | The first wavelength key for interpolation. |
p_Wavelength2 | The second wavelength key for interpolation. |
- Returns
- G4double The interpolated charge in PE.
◆ getPulseFromInterpolation()
Get a finished Pulse interpolating scan results between measured wavelengths (simulated photons has a wavelength between these two)
- Parameters
-
p_WavelengthKey1 | first wavelength key to be used |
p_WavelengthKey2 | second wavelength key to be used |
- Returns
- PMTPulse Struct with transit time, charge and detection probability
◆ getPulseFromKey()
Get a finished Pulse using a key for the maps directly
- Parameters
-
p_WavelengthKey | wavelength key to be used |
- Returns
- PMTPulse Struct with transit time, charge and detection probability
◆ getScannedWavelengths()
std::vector< G4double > OMSimPMTResponse::getScannedWavelengths |
( |
| ) |
|
|
private |
- Returns
- std::vector<double> The scanned wavelengths.
◆ getTransitTime() [1/2]
G4double OMSimPMTResponse::getTransitTime |
( |
G4double |
p_WavelengthKey | ) |
|
|
private |
This method returns the transit time sampled from a Gaussian distribution with the mean transit time and transit time spread for the provided wavelength key.
- Parameters
-
p_WavelengthKey | The key for selecting a scan from the available measurements. |
- Returns
- G4double The transit time in ns.
◆ getTransitTime() [2/2]
G4double OMSimPMTResponse::getTransitTime |
( |
G4double |
p_Wavelength1, |
|
|
G4double |
p_Wavelength2 |
|
) |
| |
|
private |
This method interpolates the transit time between the two provided wavelengths and then returns the time sampled from a Gaussian distribution with the mean interpolated transit time and interpolated transit time spread.
- Parameters
-
p_Wavelength1 | The first wavelength key for interpolation. |
p_Wavelength2 | The second wavelength key for interpolation. |
- Returns
- G4double The interpolated transit time in ns.
◆ makeCEweightInterpolator()
void OMSimPMTResponse::makeCEweightInterpolator |
( |
const std::string & |
p_FileName | ) |
|
- Parameters
-
p_FileName | File name containing CE weights |
◆ makeQEInterpolator()
void OMSimPMTResponse::makeQEInterpolator |
( |
const std::string & |
p_FileNameTargetQE | ) |
|
- Parameters
-
p_FileNameTargetQE | File name containing target QE data. |
◆ makeQEweightInterpolator()
void OMSimPMTResponse::makeQEweightInterpolator |
( |
const std::string & |
p_FileNameAbsorbedFraction | ) |
|
- Parameters
-
p_FileNameAbsorbedFraction | File name containing absorbed fraction data |
◆ processPhotocathodeHit()
Transform a hit based on its location and photon wavelength to a PMT pulse, considering the transit time, charge, and detection probability.
- Parameters
-
p_x | x position on photocathode |
p_y | y position on photocathode |
p_wavelength | Wavelength of the hitting photon |
- Returns
- PMTPulse representing the processed hit.
◆ setScannedWavelengths()
void OMSimPMTResponse::setScannedWavelengths |
( |
std::vector< double > |
p_wavelengths | ) |
|
- Parameters
-
p_wavelengths | The scanned wavelengths. |
◆ wavelengthInterpolatedValue()
G4double OMSimPMTResponse::wavelengthInterpolatedValue |
( |
std::map< G4double, TH2D * > |
p_Map, |
|
|
G4double |
p_Wavelength1, |
|
|
G4double |
p_Wavelength2 |
|
) |
| |
|
private |
Get interpolated value between two scans of different wavelenths
- Parameters
-
p_Map | Map with TGraph2D scans to be used |
p_Wavelength1 | first reference wavelength for interpolation |
p_Wavelength2 | second reference wavelength for interpolation |
- Returns
- G4double interpolated value
The documentation for this class was generated from the following files: