Omicron  4.1.1
An algorithm to detect and characterize transient events in gravitational-wave detectors
Oinject Class Reference

Inject sinusoidal Gaussian waveforms. More...

#include <Oinject.h>

Public Member Functions

double GetAmplitude (void)
 Returns the injection amplitude \(A\). More...
 
double GetAmplitudeMax (void)
 Returns the maximum amplitude \(A_{max}\). More...
 
double GetAmplitudeMin (void)
 Returns the minimum amplitude \(A_{min}\). More...
 
double GetFrequency (void)
 Returns the injection frequency \(\phi\) [Hz]. More...
 
double GetFrequencyMax (void)
 Returns the maximum frequency \(\phi_{max}\) [Hz]. More...
 
double GetFrequencyMin (void)
 Returns the minimum frequency \(\phi_{min}\) [Hz]. More...
 
double GetPhase (void)
 Returns the injection phase \(\varphi\). More...
 
double GetQ (void)
 Returns the injection Q \(Q\). More...
 
double GetQMax (void)
 Returns the maximum Q \(Q_{max}\). More...
 
double GetQMin (void)
 Returns the minimum Q \(Q_{min}\). More...
 
double GetSigmaf (void)
 Returns the injection bandwidth \(\sigma_f\). More...
 
double GetSigmat (void)
 Returns the injection duration \(\sigma_t\). More...
 
double GetTime (void)
 Returns the injection time \(\tau\) [s]. More...
 
double GetTimeMax (void)
 Returns the maximum time \(\tau_{max}\) [s]. More...
 
double GetTimeMin (void)
 Returns the minimum time \(\tau_{min}\) [s]. More...
 
double GetTrueSNR (Spectrum *aSpec1, Spectrum *aSpec2)
 Returns the true value of SNR. More...
 
double GetWaveform (const unsigned int aIndex, const unsigned int aSamplingFrequency)
 Returns the waveform amplitude \(s\) for a given time index \(i\). More...
 
void MakeWaveform (void)
 Generates a new set of waveform parameters. More...
 
void SetAmplitudeRange (const double aAmpMin, const double aAmpMax)
 Sets a new range for \(A\): \(A_{min}\) - \(A_{max}\). More...
 
void SetFrequencyRange (const double aFreqMin, const double aFreqMax)
 Sets a new range for \(\phi\): \(\phi_{min}\) - \(\phi_{max}\). More...
 
void SetQRange (const double aQMin, const double aQMax)
 Sets a new range for \(Q\): \(Q_{min}\) - \(Q_{max}\). More...
 
void SetTimeRange (const double aTimeMin, const double aTimeMax)
 Sets a new range for \(\tau\): \(\tau_{min}\) - \(\tau_{max}\). More...
 
Constructors and destructors
 Oinject (const double aDuration)
 Constructor of the Oinject class. More...
 
virtual ~Oinject (void)
 Destructor of the Oinject class. More...
 

Private Member Functions

void GenerateParameters (void)
 Generates a random set of parameters. More...
 

Private Attributes

double amp
 Injection amplitude \(A\). More...
 
double ampmax
 Maximum injection amplitude. More...
 
double ampmin
 Minimum injection amplitude. More...
 
double duration
 Vector duration [s]. More...
 
double phase
 Injection phase \(\varphi\). More...
 
double phi
 Injection frequency \(\phi\). More...
 
double phimax
 Maximum injection frequency. More...
 
double phimin
 Minimum injection frequency. More...
 
double Q
 Injection Q \(Q\). More...
 
double Qmax
 Maximum injection Q. More...
 
double Qmin
 Minimum injection Q. More...
 
TRandom3 * randgen
 Random generator. More...
 
double sigma_f
 Gaussian window width (frequency). More...
 
double sigma_t
 Gaussian window width (time). More...
 
double snr
 Injection SNR \(\rho\). More...
 
double tau
 Injection time \(\tau\). More...
 
double taumax
 Maximum injection time. More...
 
double taumin
 Minimum injection time. More...
 
double Wg
 Gaussian window normalization. More...
 

Detailed Description

Inject sinusoidal Gaussian waveforms.

Author
Florent Robinet

Constructor & Destructor Documentation

◆ Oinject()

Oinject::Oinject ( const double  aDuration)

Constructor of the Oinject class.

The ranges for the parameters are set to default values:

  • Time: \(\tau = 0\)
  • Frequency: \(32\le f_0 < 512\) Hz
  • Q: \(4\leQ < 100\)
  • amplitude: \(A = 10^{-21}\)
  • Phase: \(0\le\varphi < 2\pi\)

A set of random parameters is generated with MakeWaveform(). The user must specify the duration of the injection waveform.

Parameters
[in]aDurationWaveform duration [s].

◆ ~Oinject()

Oinject::~Oinject ( void  )
virtual

Destructor of the Oinject class.

Member Function Documentation

◆ GenerateParameters()

void Oinject::GenerateParameters ( void  )
private

Generates a random set of parameters.

Random parameters:

  • \(\tau\) (peak time): uniform distribution between \(\tau_{min}\) and \(\tau_{max}\)
  • \(\varphi\) (phase): uniform distribution between \(0\) and \(2\pi\)
  • \(A\) (amplitude): log-uniform distribution between \(A_{min}\) and \(A_{max}\)
  • \(\phi\) (frequency): uniform distribution between \(\phi_{min}\) and \(\phi_{max}\)
  • \(Q\) (quality factor): uniform distribution between \(Q_{min}\) and \(Q_{max}\)

◆ GetAmplitude()

double Oinject::GetAmplitude ( void  )
inline

Returns the injection amplitude \(A\).

◆ GetAmplitudeMax()

double Oinject::GetAmplitudeMax ( void  )
inline

Returns the maximum amplitude \(A_{max}\).

◆ GetAmplitudeMin()

double Oinject::GetAmplitudeMin ( void  )
inline

Returns the minimum amplitude \(A_{min}\).

◆ GetFrequency()

double Oinject::GetFrequency ( void  )
inline

Returns the injection frequency \(\phi\) [Hz].

◆ GetFrequencyMax()

double Oinject::GetFrequencyMax ( void  )
inline

Returns the maximum frequency \(\phi_{max}\) [Hz].

◆ GetFrequencyMin()

double Oinject::GetFrequencyMin ( void  )
inline

Returns the minimum frequency \(\phi_{min}\) [Hz].

◆ GetPhase()

double Oinject::GetPhase ( void  )
inline

Returns the injection phase \(\varphi\).

◆ GetQ()

double Oinject::GetQ ( void  )
inline

Returns the injection Q \(Q\).

◆ GetQMax()

double Oinject::GetQMax ( void  )
inline

Returns the maximum Q \(Q_{max}\).

◆ GetQMin()

double Oinject::GetQMin ( void  )
inline

Returns the minimum Q \(Q_{min}\).

◆ GetSigmaf()

double Oinject::GetSigmaf ( void  )
inline

Returns the injection bandwidth \(\sigma_f\).

◆ GetSigmat()

double Oinject::GetSigmat ( void  )
inline

Returns the injection duration \(\sigma_t\).

◆ GetTime()

double Oinject::GetTime ( void  )
inline

Returns the injection time \(\tau\) [s].

◆ GetTimeMax()

double Oinject::GetTimeMax ( void  )
inline

Returns the maximum time \(\tau_{max}\) [s].

◆ GetTimeMin()

double Oinject::GetTimeMin ( void  )
inline

Returns the minimum time \(\tau_{min}\) [s].

◆ GetTrueSNR()

double Oinject::GetTrueSNR ( Spectrum *  aSpec1,
Spectrum *  aSpec2 
)

Returns the true value of SNR.

TBC.

Parameters
[in]aSpec1Noise spectrum (1)
[in]aSpec2Noise spectrum (2)

◆ GetWaveform()

double Oinject::GetWaveform ( const unsigned int  aIndex,
const unsigned int  aSamplingFrequency 
)
inline

Returns the waveform amplitude \(s\) for a given time index \(i\).

The waveform amplitude is computed for the set of parameters previously generated with MakeWaveform(). The user must specify the frequency \(f_0\) at which the data vector is sampled. This way, combined with the duration \(T\) set in the constructor, the index can be converted to a time value: \(t_i = -T/2+i/f_0\).

Returns
The waveform amplitude given by:

\[ s[i] = A \times \frac{W_g}{\sigma_t\sqrt{2\pi}}\times \exp\left( -\frac{(t_i-\tau)^2}{2\sigma_t^2}\right) \times \cos\left(2\pi\phi t_i+\varphi\right) \]

where \(W_g = \sqrt{\sqrt{2/\pi} \times Q/\phi}\) and \(\sigma_t = Q/(\sqrt{8}\pi\phi)\).
Parameters
[in]aIndexWaveform time index \(i\).
[in]aSamplingFrequencySampling frequency \(f_0\) [Hz].

◆ MakeWaveform()

void Oinject::MakeWaveform ( void  )

Generates a new set of waveform parameters.

See also
GenerateParameters() for definitions.

◆ SetAmplitudeRange()

void Oinject::SetAmplitudeRange ( const double  aAmpMin,
const double  aAmpMax 
)
inline

Sets a new range for \(A\): \(A_{min}\) - \(A_{max}\).

Parameters
[in]aAmpMinMinimum amplitude \(A_{min}\).
[in]aAmpMaxMaximum amplitude \(A_{max}\).

◆ SetFrequencyRange()

void Oinject::SetFrequencyRange ( const double  aFreqMin,
const double  aFreqMax 
)
inline

Sets a new range for \(\phi\): \(\phi_{min}\) - \(\phi_{max}\).

Parameters
[in]aFreqMinMinimum frequency \(\phi_{min}\) [Hz].
[in]aFreqMaxMaximum frequency \(\phi_{max}\) [Hz].

◆ SetQRange()

void Oinject::SetQRange ( const double  aQMin,
const double  aQMax 
)
inline

Sets a new range for \(Q\): \(Q_{min}\) - \(Q_{max}\).

Parameters
[in]aQMinMinimum Q \(Q_{min}\).
[in]aQMaxMaximum Q \(Q_{max}\).

◆ SetTimeRange()

void Oinject::SetTimeRange ( const double  aTimeMin,
const double  aTimeMax 
)
inline

Sets a new range for \(\tau\): \(\tau_{min}\) - \(\tau_{max}\).

Parameters
[in]aTimeMinMinimum time \(\tau_{min}\) [s].
[in]aTimeMaxMaximum time \(\tau_{max}\) [s].

Member Data Documentation

◆ amp

double Oinject::amp
private

Injection amplitude \(A\).

◆ ampmax

double Oinject::ampmax
private

Maximum injection amplitude.

◆ ampmin

double Oinject::ampmin
private

Minimum injection amplitude.

◆ duration

double Oinject::duration
private

Vector duration [s].

◆ phase

double Oinject::phase
private

Injection phase \(\varphi\).

◆ phi

double Oinject::phi
private

Injection frequency \(\phi\).

◆ phimax

double Oinject::phimax
private

Maximum injection frequency.

◆ phimin

double Oinject::phimin
private

Minimum injection frequency.

◆ Q

double Oinject::Q
private

Injection Q \(Q\).

◆ Qmax

double Oinject::Qmax
private

Maximum injection Q.

◆ Qmin

double Oinject::Qmin
private

Minimum injection Q.

◆ randgen

TRandom3* Oinject::randgen
private

Random generator.

◆ sigma_f

double Oinject::sigma_f
private

Gaussian window width (frequency).

◆ sigma_t

double Oinject::sigma_t
private

Gaussian window width (time).

◆ snr

double Oinject::snr
private

Injection SNR \(\rho\).

◆ tau

double Oinject::tau
private

Injection time \(\tau\).

◆ taumax

double Oinject::taumax
private

Maximum injection time.

◆ taumin

double Oinject::taumin
private

Minimum injection time.

◆ Wg

double Oinject::Wg
private

Gaussian window normalization.


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