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

Process data with the Omicron algorithm. More...

#include <Oomicron.h>

Collaboration diagram for Omicron:

Public Member Functions

int Condition (const unsigned int aInVectSize, double *aInVect, bool &aIsFlat)
 Conditions a data vector. More...
 
bool DefineNewChunk (const unsigned int aTimeStart, const unsigned int aTimeEnd, const bool aResetPsdBuffer=false)
 Defines a new time chunk. More...
 
bool ExtractTriggers (double &aTriggerRate)
 Extracts and saves triggers above threshold. More...
 
Long64_t FlushTriggers (void)
 Flushes triggers. More...
 
string GetChannelName (void)
 Returns the name of the current channel. More...
 
unsigned int GetChannelNativeFrequency (void)
 Returns the native sampling frequency of the current channel. More...
 
vector< string > GetChannels (void)
 Returns the list of channels. More...
 
unsigned int GetChunkDuration (void)
 Returns the chunk duration [s]. More...
 
unsigned int GetNChannels (void)
 Returns the number of channels. More...
 
long unsigned int GetNTiles (const double aPadding=0.0)
 Returns the number of tiles. More...
 
unsigned int GetOverlapDuration (void)
 Returns the overlap duration [s]. More...
 
unsigned int GetSampleFrequency (void)
 Returns the working sampling frequency [Hz]. More...
 
double GetSnrThreshold (void)
 Returns the SNR threshold used to save triggers. More...
 
bool GetStatus (void)
 Returns class status. More...
 
Long64_t GetTriggerN (void)
 Returns the current number of triggers in memory for the current channel. More...
 
unsigned int GetTriggerSegmentsN (void)
 Returns the number of processed segments. More...
 
unsigned int GetVerbosity (void)
 Returns verbosity level. More...
 
bool InitSegments (Segments *aInSeg, Segments *aOutSeg=NULL)
 Initializes the segments to process and to output. More...
 
bool LoadData (double **aDataVector, unsigned int &aSize)
 Loads a data vector. More...
 
bool MakeDirectories (const double aId=0.0)
 Creates a specific directory tree for the output. More...
 
bool NewChannel (void)
 Calls a new channel. More...
 
bool NewChunk (void)
 Calls a new time chunk. More...
 
void PrintMessage (const string aMessage)
 Prints a formatted message with a timer. More...
 
void PrintStatusInfo (void)
 Prints a progress report. More...
 
long unsigned int Project (void)
 Projects whitened data onto the tiles and fills output structures. More...
 
void ResetPsdBuffer (void)
 Resets the PSD buffer of current channel. More...
 
void ResetTriggerBuffer (void)
 Resets the trigger buffer of current channel. More...
 
void SetPlotTimeOffset (const double aTimeOffset)
 When time plots are requested in output, a time offset [s] can be added. More...
 
bool WriteOutput (void)
 Writes output products to disk. More...
 
string WriteTriggers (const bool aUseLVDir=false)
 Writes triggers to disk. More...
 
Constructors and destructors
 Omicron (const string aOptionFile, const unsigned int aGpsRef=0, const bool aStrict=false)
 Constructor of the Omicron class. More...
 
virtual ~Omicron (void)
 Destructor of the Omicron class. More...
 

Private Member Functions

string GetColorCode (const double aSnrRatio)
 Returns a html color code based on a SNR ratio value. More...
 
bool IsFlat (const unsigned int aInVectSize, double *aInVect)
 Tests whether a data vector is flat. More...
 
void MakeHtml (void)
 Generates a HTML report in the main output directory. More...
 
void ReadOptions (const unsigned int aGpsRef, const bool aStrict)
 Reads the option file. More...
 
void SaveAPSD (const string aType)
 Prints the ASD/PSD to a file. More...
 
void SaveSG (void)
 Prints the SineGaus injection parameters in a txt file. More...
 
void SaveTS (const bool aWhite=false)
 Prints the timeseries to a file. More...
 
void SaveWPSD (void)
 Prints the PSD after whitening to a file. More...
 
void Whiten (Spectrum *aSpec, const double aNorm=1.0)
 Whiten the chunk data vector. More...
 

Private Attributes

unsigned int * chan_cond_ctr
 Number of Condition() calls /channel. More...
 
unsigned int * chan_ctr
 Number of called chunks /channel. More...
 
unsigned int * chan_data_ctr
 Number of LoadData() calls /channel. More...
 
double * chan_mapsnrmax
 Channel SNR max in maps (only for html) More...
 
unsigned int * chan_proj_ctr
 Number of Project() calls /channel. More...
 
unsigned int * chan_write_ctr
 Number of WriteOutput() calls /channel. More...
 
int chanindex
 Current channel index (-1 = no channel). More...
 
unsigned int chunk_ctr
 Number of called chunks. More...
 
vector< unsigned int > chunkcenter
 Chunk centers (only for html). More...
 
vector< string > chunktfile
 save chunk file (only for html) More...
 
double * ChunkVect
 Chunk raw data (time domain). More...
 
string fClusterAlgo
 Clustering algorithm. More...
 
ffl * FFL
 ffl object (NULL if none). More...
 
ffl * FFL_inject
 ffl for injection signals. More...
 
string fftplan
 FFT plan. More...
 
vector< string > fInjChan
 Injection channel names. More...
 
vector< double > fInjFact
 Injection factors. More...
 
string fMaindir
 Main output directory. More...
 
bool fNoLogo
 No logo flag. More...
 
string fOptionFile
 Option file name. More...
 
string fOutFormat
 Output format string. More...
 
string fOutProducts
 Output product string. More...
 
double fratemax
 Maximum trigger rate /chunk. More...
 
unsigned int fsginj
 Flag to perform SG injections. More...
 
unsigned int fVerbosity
 Verbosity level. More...
 
InjEct ** inject
 Software injections (in frame data) / channel. More...
 
Segments * inSegments
 Requested segments. More...
 
string maindir
 Output main directory. More...
 
unsigned int nchannels
 Number of channels. More...
 
fft * offt
 FFT plan to FFT the input data. More...
 
Oinjectoinj
 Software SineGauss injections. More...
 
ofstream oinjfile
 Output file with sg injection parameters. More...
 
vector< string > outdir
 Output directories / channel. More...
 
Segments ** outSegments
 Processed segments /channel. More...
 
struct tm * ptm
 GMT time. More...
 
Spectrum ** spectrum1
 1st spectrum structure / channel. More...
 
Spectrum ** spectrum2
 2nd spectrum structure / channel. More...
 
Spectrum * spectrumw
 Spectrum structure to test whitening. More...
 
bool status_OK
 General status. More...
 
Otiletile
 Tiling structure. More...
 
time_t timer
 Timer. More...
 
time_t timer_start
 Timer start. More...
 
double toffset
 Time offset for plots [s]. More...
 
unsigned int * trig_ctr
 Number of tiles above snr thr /channel. More...
 
TriggerBuffer ** triggers
 Output triggers / channel. More...
 
double * TukeyWindow
 Tukey window. More...
 

Detailed Description

Process data with the Omicron algorithm.

This class is designed to offer various methods to conduct an Omicron analysis. The Omicron object must be initialized with an option file: see ReadOptions().

After construction, the Omicron methods should be called sequentially to perform the analysis. Here is a typical sequence:

  • InitSegments() defines the data segments to process.
  • MakeDirectories() creates a specific directory structure for the output (optional).
  • NewChunk() loads a new chunk of data (loop #1).
  • NewChannel() loads a new channel (loop #2).
  • LoadData() loads a data vector for this chunk and this channel from a FFL file (in loop #1/2)
  • Condition() conditions the data vector (in loop #1/2)
  • Project() projects data onto the tiling structure (in loop #1/2)
  • WriteOutput() writes output data products to disk (in loop #1/2)
Author
Florent Robinet

Constructor & Destructor Documentation

◆ Omicron()

Omicron::Omicron ( const string  aOptionFile,
const unsigned int  aGpsRef = 0,
const bool  aStrict = false 
)

Constructor of the Omicron class.

This constructor initializes all the components to run Omicron: data structures, data streams, spectra, tiling, maps, triggers, injections, monitoring, etc.

An option file is required to define all the parameters to run Omicron. For more details about the Omicron configuration, see ReadOptions().

Parameters
[in]aOptionFilePath to the option file.
[in]aGpsRefReference time to initiate structures.
[in]aStrictStrict mode: when set to true, the status of the Omicron object is set to false if options are incorrectly provided.

◆ ~Omicron()

Omicron::~Omicron ( void  )
virtual

Destructor of the Omicron class.

Member Function Documentation

◆ Condition()

int Omicron::Condition ( const unsigned int  aInVectSize,
double *  aInVect,
bool &  aIsFlat 
)

Conditions a data vector.

Before projecting the data onto the tiles, the data is conditioned and whitened with this function. The following operations are performed:

  • Check if the Omicron object is sane (returns -1 otherwise)
  • Check if the input data vector is sane (returns 1 otherwise)
  • Check if the input vector is flat (prints a warning and set the output flag to true).
  • Calculate the native sampling frequency based on the vector size. If the native sampling frequency has changed, it is updated (returns 2 if this update fails).
  • If requested in the option file, a SineGaus injection is added.
  • The DC component is removed (returns 3 if it fails).
  • If requested in the option file, the data is high-pass-filtered (returns 3 if it fails).
  • The data vector is resampled to the working frequency (returns 3 if it fails).
  • The data vector is applied a Tukey window.
  • The data is used to update the PSD (the first one).
  • The data is Fourier-transformed (returns 4 if it fails).
  • The data is whitened in the Fourier domain using the first PSD (see Whiten()).
  • The data Fourier-transformed back in the time domain.
  • The data is used to update the PSD (the second one).
  • The data is Fourier-transformed.
  • The data is whitened in the Fourier domain using the second PSD (see Whiten()).
Warning
The input vector size MUST MATCH the chunk size loaded with NewChunk(). NO check is performed against that!
Returns
0 if the data was correctly conditioned.
Parameters
[in]aInVectSizeInput vector size.
[in]aInVectInput data vector (time domain).
[out]aInVectaIsFlat Flag set to true if the input data vector is detected to be flat.

◆ DefineNewChunk()

bool Omicron::DefineNewChunk ( const unsigned int  aTimeStart,
const unsigned int  aTimeEnd,
const bool  aResetPsdBuffer = false 
)

Defines a new time chunk.

Instead of defining a list of input segments (see InitSegments()) and processing sequentially the data (see NewChunk()), it is possible to define any new time chunk.

Optionally, it is possible to reset the PSD buffer (for all channels).

Note
The chunk duration must match the one defined in the option file.
Parameters
[in]aTimeStartGPS start time of the chunk.
[in]aTimeEndGPS end time of the chunk.
[in]aResetPsdBufferFlag to reset the PSD buffers.
Returns
The returned value indicates the status of this operation:
  • true: the time chunk is successfully called
  • false: otherwise

◆ ExtractTriggers()

bool Omicron::ExtractTriggers ( double &  aTriggerRate)

Extracts and saves triggers above threshold.

Triggers are saved using Otile::SaveTriggers(). The trigger structure for each channel is filled with tiles with a SNR above threshold.

Warning
If the number of triggers is greater than the maximum trigger rate specified in the option file, the current chunk is ignored and this function returns false.
Parameters
[out]aTriggerRateTrigger rate [Hz] measured over the chunk excluding half the overlap on both sides.

◆ FlushTriggers()

Long64_t Omicron::FlushTriggers ( void  )

Flushes triggers.

All triggers collected until now with ExtractTriggers() are flushed in the final MakeTriggers structure.

Note
If requested, triggers are clustered.
Returns
This function returns the number of triggers (or clusters if requested). It returns -1 if this function fails.

◆ GetChannelName()

string Omicron::GetChannelName ( void  )
inline

Returns the name of the current channel.

Returns "" if no channel is defined.

◆ GetChannelNativeFrequency()

unsigned int Omicron::GetChannelNativeFrequency ( void  )
inline

Returns the native sampling frequency of the current channel.

Returns 0 if no channel is defined.

◆ GetChannels()

vector< string > Omicron::GetChannels ( void  )

Returns the list of channels.

◆ GetChunkDuration()

unsigned int Omicron::GetChunkDuration ( void  )
inline

Returns the chunk duration [s].

◆ GetColorCode()

string Omicron::GetColorCode ( const double  aSnrRatio)
private

Returns a html color code based on a SNR ratio value.

Parameters
[in]aSnrRatioSNR ratio value.

◆ GetNChannels()

unsigned int Omicron::GetNChannels ( void  )
inline

Returns the number of channels.

◆ GetNTiles()

long unsigned int Omicron::GetNTiles ( const double  aPadding = 0.0)
inline

Returns the number of tiles.

Parameters
[in]aPaddingNumber of seconds excluded on both sides of the time range.
Precondition
The padding value is not checked! Make sure it is compatible with the time range.

◆ GetOverlapDuration()

unsigned int Omicron::GetOverlapDuration ( void  )
inline

Returns the overlap duration [s].

◆ GetSampleFrequency()

unsigned int Omicron::GetSampleFrequency ( void  )
inline

Returns the working sampling frequency [Hz].

◆ GetSnrThreshold()

double Omicron::GetSnrThreshold ( void  )
inline

Returns the SNR threshold used to save triggers.

◆ GetStatus()

bool Omicron::GetStatus ( void  )
inline

Returns class status.

◆ GetTriggerN()

Long64_t Omicron::GetTriggerN ( void  )
inline

Returns the current number of triggers in memory for the current channel.

◆ GetTriggerSegmentsN()

unsigned int Omicron::GetTriggerSegmentsN ( void  )
inline

Returns the number of processed segments.

◆ GetVerbosity()

unsigned int Omicron::GetVerbosity ( void  )
inline

Returns verbosity level.

◆ InitSegments()

bool Omicron::InitSegments ( Segments *  aInSeg,
Segments *  aOutSeg = NULL 
)

Initializes the segments to process and to output.

This function should always be called before processing data. The input segment structure is used:

  • to initialize the analysis sequence (see Otile::SetSegments())
  • to update the channel list in the FFL.

Optionally, output segments (for triggers only!) can be specified. If so, triggers outside the output segments are not be saved. Use a pointer to NULL to not use this option.

Parameters
[in]aInSegPointer to the input Segments structure.
[in]aOutSegPointer to the output Segments structure.

◆ IsFlat()

bool Omicron::IsFlat ( const unsigned int  aInVectSize,
double *  aInVect 
)
private

Tests whether a data vector is flat.

Returns
true if it is.
Parameters
[in]aInVectSizeVector size: must be strictly positive.
[in]aInVectPointer to data vector.

◆ LoadData()

bool Omicron::LoadData ( double **  aDataVector,
unsigned int &  aSize 
)

Loads a data vector.

A data vector is returned, as well as its size.

  • The data vector of the current channel and the current chunk is loaded.
  • If requested in the option file, software injections (InjEct) are added to the data.
  • If requested in the option file, the injection data stream is loaded and added to the data.
Warning
The FFL option is mandatory to use this function.
Note
It is the user's responsibility to delete the returned data vector.
Returns
If this function fails, false is returned and the data vector points to NULL.
Parameters
[out]aDataVectorPointer to the data vector.
[out]aSizeSize of the data vector.

◆ MakeDirectories()

bool Omicron::MakeDirectories ( const double  aId = 0.0)

Creates a specific directory tree for the output.

Two directory structures are possible:

  • [path_to_outdir]/aId/[channel_name] if aId is not 0
  • [path_to_outdir]/[channel_name] if aId is 0

where [path_to_outdir] is the output directory specified by the user in the option file and [channel_name] is the channel name being processed.

The aId value is rounded to the third digit.

If this function is never called, all the output is dumped in the output directory specified by the user in the option file.

Parameters
[in]aIdDirectory id.

◆ MakeHtml()

void Omicron::MakeHtml ( void  )
private

Generates a HTML report in the main output directory.

◆ NewChannel()

bool Omicron::NewChannel ( void  )

Calls a new channel.

The channels defined in the option file are called sequentially. If this function is called after the last channel, false is returned and the channel sequence is reset: at the next call, the first channel will be loaded again.

◆ NewChunk()

bool Omicron::NewChunk ( void  )

Calls a new time chunk.

The time chunks are called following the time sequence defined by the Otile class.

Note
If a new segment is started, the PSD buffer is reset for all channels.
If the sine-Gauss injections are activated, waveforms are generated.
Returns
The returned value indicates the status of this operation:
  • true: a new time chunk has been successfully called
  • false: no more chunk to load

◆ PrintMessage()

void Omicron::PrintMessage ( const string  aMessage)

Prints a formatted message with a timer.

Parameters
[in]aMessageMessage to print.

◆ PrintStatusInfo()

void Omicron::PrintStatusInfo ( void  )

Prints a progress report.

◆ Project()

long unsigned int Omicron::Project ( void  )

Projects whitened data onto the tiles and fills output structures.

Otile::ProjectData() is called to fill the tiling structure.

Returns
The number of tiles above the threshold is returned.

◆ ReadOptions()

void Omicron::ReadOptions ( const unsigned int  aGpsRef,
const bool  aStrict 
)
private

Reads the option file.

Parse Omicron parameters.

Parameters
[in]aGpsRefReference GPS time [s] to test the channel existence in the FFL file.
[in]aStrictStrict flag. If set to true, important options must be given or else the Omicron object is corrupted.

Omicron parameters must be provided with an option file (see Omicron::Omicron()). Each parameter is identified with a tag and a keyword:

TAG  KEYWORD  [PARAMETERS]

The combination of tag/keyword/parameters is called an option.

Note
For some options, multiple parameters can be used. They are separated by white spaces or tabs.
Warning
If an option is not provided, default values are used for the parameter.
//*************************************************************************************
//************************ Omicron configuration file *****************************
//*************************************************************************************
//*************************************************************************************
//************************ DATA CLASS *****************************
//*************************************************************************************
//** path to a frame file list file (FFL or lalcache format)
DATA FFL /virgoData/ffl/raw.ffl
//** list of channels you want to process (here you have 3).
// They can be listed on one single line or several lines
DATA CHANNELS V1:Hrec_hoft_16384Hz
DATA CHANNELS V1:LSC_DARM V1:LSC_DARM_ERR
//** working sampling frequency (one value for all channels)
DATA SAMPLEFREQUENCY 2048
//************************************************************************************
//************************ PARAMETER CLASS *****************************
//************************************************************************************
//** analysis window duration and overlap in seconds
PARAMETER TIMING 64 4
//** search frequency range [Hz]
PARAMETER FREQUENCYRANGE 12 1024
//** search Q range
PARAMETER QRANGE 4 100
//** maximal mismatch between tiles
PARAMETER MISMATCHMAX 0.3
//** tile SNR threshold
PARAMETER SNRTHRESHOLD 6
//** data length for optimal PSD estimation in seconds
PARAMETER PSDLENGTH 300
//*************************************************************************************
//************************ OUTPUT CLASS *****************************
//*************************************************************************************
//** path to output directory
OUTPUT DIRECTORY /path/to/output/directory
//** list of data products
OUTPUT PRODUCTS triggers html
//** output file format
OUTPUT FORMAT root
//** verbosity level (0-1-2-3)
OUTPUT VERBOSITY 1

Here we list all the options for Omicron.

OUTPUT

Output directory

OUTPUT  DIRECTORY  [PARAMETER]

[PARAMETER] is the directory path (relative or absolute). The current directory is used by default if this option is not provided or if the specified directory does not exist.

Output products

OUTPUT  PRODUCTS  [PARAMETERS]

[PARAMETERS] is the list of products computed by Omicron. Possible parameters are:

  • triggers: Omicron tiles above a SNR threshold are saved in a file.
  • asd: The amplitude spectral density function is saved in a file.
  • psd: The power spectral density function is saved in a file.
  • html: A html report is produced in the output directory specified with the directory option.
  • timeseries: The condition time series is saved in a file.
  • white: The time series after whitening is saved in a file.
  • whitepsd: The power spectral density after whitening is saved in a file.
  • mapsnr: The snr spectrograms are saved in a file.
  • mapamplitude: The amplitude spectrograms are saved in a file.
  • mapphase: The phase spectrograms are saved in a file.

By default, only triggers are produced. The ouput file format is specified with the format option.

File format

OUTPUT  FORMAT  [PARAMETERS]

[PARAMETERS] is the list of file formats to save output products. Supported formats: root (native), hdf5 (for triggers only), and all the usual graphical formats (svg, gif, pdf, png, eps and so on). By default = root.

Note
Use wav to produce sound files for time series.

Verbosity level

OUTPUT  VERBOSITY  [PARAMETER]

[PARAMETER] is the verbosity level: 0, 1, 2, or 3. By default = 0.

Output style

OUTPUT  STYLE  [PARAMETER]

[PARAMETER] defines the css style for the web report (if requested with the output products option). It also defines the graphical color palette for the plots. Several styles are supported:

  • GWOLLUM (default): black background, blue style.
  • FIRE: black background, color palette from red to yellow
  • STANDARD: light background, rainbow color palette
  • PINK: black background, pink style.

No logo flag

OUTPUT  NOLOGO  [PARAMETER]

If [PARAMETER] is set to a non-zero value, the omicron background logo does not appear on the web reports (if requested with the output products option). By default, the logo is present ([PARAMETER] = 0).

Plot dimensions

OUTPUT  PLOTDIMENSIONS  [PARAMETERS]

This option sets the graphical plot dimensions (if requested with the output format option). Exactly two integer numbers should be provided with [PARAMETERS]: the width and the height measured in a number of pixels.

DATA

Frame file list

DATA  FFL  [PARAMETERS]

or

DATA  LCF  [PARAMETERS]

This option specifies the list of frame files to be processed by omicron. In the first option, it is provided as a frame file list (FFL). In the second option, it is provided as a LAL cache file (LCF). [PARAMETERS] must provide the path to the FFL or LCF file (absolute or relative). It can be complemented by 2 optional parameters which are used to load the FFL file multiple times in a row (for online applications):

  • Number of retries to load the FFL,
  • Time in [s] between two retries.

By default, no FFL file is used.

Working sampling frequency

DATA  SAMPLEFREQUENCY  [PARAMETER]

This option specifies the working sampling frequency of omicron in [Hz]. All channel time series are sampled to a common frequency before being processed. Only downsampling is supported. The working sampling frequency must be a power of 2 and must be at least 16 Hz.

List of channels

DATA  CHANNELS  [PARAMETERS]

This option specifies the list of channels to process, e.g. V1:Hrec_hoft_16384Hz V1:LSC_DARM. Multiple channel names can be provided using wildcards. This option can also be used on multiple lines. This option is mandatory.

List of black-listed channels

DATA  BLACKLISTEDCHANNELS  [PARAMETERS]

This option specifies the list of channels to exclude from the processing, e.g. V1:Hrec_hoft_16384Hz V1:LSC_DARM. Multiple channel names can be provided using wildcards. This option can also be used on multiple lines.

Trigger buffer size

DATA  TRIGGERBUFFERSIZE  [PARAMETER]

This option is used for online applications. Triggers produced by omicron can be buffered. This parameter defines the size of the buffer. By default, there is no buffer (size=0).

PARAMETER

Analysis timing

PARAMETER  TIMING  [PARAMETERS]

This option specifies the timing parameters to perform the analysis. It includes 2 parameters:

  • The analysis window size in [s]. It must be a power of 2.
  • Overlap duration [s]. Two consecutive analysis windows overlap by this amount. By default, window size = 64 s and overlap = 4 s.

Frequency range

PARAMETER  FREQUENCYRANGE  [PARAMETERS]

This option specifies the search frequency range with a lower bound and a higher bound, both in [Hz]. The higher bound must be compatible with the sampling frequency option. By default, lower frequency = 2 Hz and higher frequency = sampling frequency /2.

Q range

PARAMETER  QRANGE  [PARAMETERS]

This option specifies the search Q range with a lower bound and a higher bound. The lower bound must be at least \(\sqrt{11}\). By default, lower Q = 4 and higher Q = 100.

Maximum mismatch between tiles

PARAMETER  MISMATCHMAX  [PARAMETER]

This option specifies the maximum energy mismatch between time-frequency tiles. This value should be a number between 0 and 1. By default, max mismatch = 0.25.

SNR thresholds

PARAMETER  SNRTHRESHOLD  [PARAMETERS]

This option specifies the signal-to-noise ratio. There are 2 SNR threshold:

  • The first SNR threshold applies to the individual time-frequency tiles to define a trigger.
  • The second SNR threshold determines if spectogram plots must be generated. The plots are produced if at least one tile in the first plot time window is above this threshold.

By default, both thresholds are set to 7.

Note
only one PARAMETER can be provided. The same vlaue will then be given to both thresholds.

Power spectrum density length

PARAMETER  PSDLENGTH  [PARAMETER]

This option specifies the duration [s] over which the power spectrum density is estimated. By default, use the analysis window duration minus the overlap.

High-pass filter

PARAMETER  HIGHPASS  [PARAMETER]

This option specifies the frequency cutoff [Hz] at which to high-pass the data before processing. By default, do not high-pass the data.

Clustering algorithm

PARAMETER  CLUSTERING  [PARAMETER]

This option selects the clustering method. Only one clustering method is currently supported: "TIME". By default, no clustering.

Note
This option is useless for triggers saved in a ROOT format. Clusters are nevered saved in ROOT files.

Clustering time window

PARAMETER  CLUSTERDT  [PARAMETER]

This option specifies the time window duration to cluster triggers in [s]. By default, = 0.1 s

Time windows for plots

PARAMETER  WINDOWS  [PARAMETERS]

This option specifies the time window durations for plots. There is no limit on the number of parameters. By default, on single value = analysis window duration minus the overlap.

Log scale for SNR scales in plots

PARAMETER  MAPLOGSCALE  [PARAMETER]

This option, when different from 0, activates the log scale when plotting the SNR. By default, the log scale is used.

Vertical range for spectrograms

PARAMETER  MAPVRANGE  [PARAMETERS]

This option specifies the vertical range for spectrogram plots.

FFT plan

PARAMETER  FFTPLAN  [PARAMETER]

This option specifies the plan to perform Fourier transforms with FFTW. By default = "FFTW_MEASURE".

Maximum trigger rate

PARAMETER  TRIGGERRATEMAX [PARAMETER]

This option specifies maximum trigger rate limit [Hz] when saving triggers to files. If the trigger rate is above this value (over the analysis window), the file is not saved. By default = 5000 Hz.

Newtonian chirp

PARAMETER  CHIRP [PARAMETERS]

With this option, it is possible to draw a Newtonian chirp on top of omicron spectrograms. There can be one or two parameters:

  • A chirp mass in solar masses: the chirp is drawn with an end time positioned at the center of the analysis window.
  • A chirp mass in solar masses + a GPS time [s]: the chirp is drawn with an end time positioned at the requested GPS time.

By default: no chirp.

INJECTION

Injection channel list

INJECTION  CHANNELS [PARAMETERS]

This option specifies the list of channels to be used as injection signals. There should be as many channels as listed in the main channel list.

Injection scaling factors

INJECTION  FACTORS [PARAMETERS]

This option specifies the list of amplitude scaling factors used to inject signals. There should be as many factors as the number of injection channels.

Frame file list

INJECTION  FFL [PARAMETERS]

or

INJECTION  LCF [PARAMETERS]

If the injection channel(s) are not included in the main ffl file, this option specifies an additional ffl file. [PARAMETER] is the relative or absolute path to the ffl/lcf file. This parameter can be complemented by 2 optional parameters which are used to load the FFL file multiple times in a row (for online applications):

  • Number of retries to load the FFL,
  • Time in [s] between two retries.

Injection file

INJECTION  FILENAME [PARAMETER]

Injections can also be performed through an injection file listing the source/waveform parameters. The injection file must be a ROOT file generated with the InjGen class. This option provides the file absolute/relative path to the injection file.

Sine-Gauss injections

INJECTION  SG [PARAMETER]

Sine-gauss injections can be performed by setting [PARAMETER] to a value different from 0. One waveform is injected in every analysis window.

Sine-Gauss injection time

INJECTION  SGTIME [PARAMETERS]

By default, sine-Gaussian waveforms are always injected at the center of the analysis window. With this option, the time of the injection can be taken as a random value in a given time range. The time range is defined with 2 values: a negative and a positive range from the center (in seconds).

Sine-Gauss injection frequency

INJECTION  SGFREQUENCY [PARAMETERS]

With this option, the frequency of the injection is taken as a random value in a given frequency range, following a logarithmic distribution. If only one value is provided, the injection frequency is fixed at that value.

Sine-Gauss injection Q

INJECTION  SGQ [PARAMETERS]

With this option, the quality factor of the injection is taken as a random value in a given range, following a logarithmic distribution. If only one value is provided, the injection Q is fixed at that value.

Sine-Gauss amplitude

INJECTION  SGAMPLITUDE [PARAMETERS]

With this option, the amplitude of the injection is taken as a random value in a given range, following a logarithmic distribution. If only one value is provided, the injection amplitude is fixed at that value.

◆ ResetPsdBuffer()

void Omicron::ResetPsdBuffer ( void  )
inline

Resets the PSD buffer of current channel.

◆ ResetTriggerBuffer()

void Omicron::ResetTriggerBuffer ( void  )
inline

Resets the trigger buffer of current channel.

◆ SaveAPSD()

void Omicron::SaveAPSD ( const string  aType)
private

Prints the ASD/PSD to a file.

Parameters
[in]aType"ASD" or "PSD".

◆ SaveSG()

void Omicron::SaveSG ( void  )
private

Prints the SineGaus injection parameters in a txt file.

◆ SaveTS()

void Omicron::SaveTS ( const bool  aWhite = false)
private

Prints the timeseries to a file.

Parameters
[in]aWhiteSet to true to save the whitened timeseries.

◆ SaveWPSD()

void Omicron::SaveWPSD ( void  )
private

Prints the PSD after whitening to a file.

◆ SetPlotTimeOffset()

void Omicron::SetPlotTimeOffset ( const double  aTimeOffset)
inline

When time plots are requested in output, a time offset [s] can be added.

Parameters
[in]aTimeOffsetTime offset [s].

◆ Whiten()

void Omicron::Whiten ( Spectrum *  aSpec,
const double  aNorm = 1.0 
)
private

Whiten the chunk data vector.

The data vector (in the frequency domain) is whitened:

  • The DC frequency is set to 0.
  • The Fourier coefficients below the highpass frequency are set to 0.
  • The Fourier coefficients are divided by the amplitude spectral density. Afactor \(\sqrt{2}\) is included to account for the double whitening.
  • Optionally the data is multiplied by a normalization factor.
    Parameters
    [in]aSpecSpectrum object to whiten the data.
    [in]aNormNormalization factor.

◆ WriteOutput()

bool Omicron::WriteOutput ( void  )

Writes output products to disk.

The output data products selected by the user in the option file and for the current chunk/channel are written to disk.

◆ WriteTriggers()

string Omicron::WriteTriggers ( const bool  aUseLVDir = false)

Writes triggers to disk.

All triggers collected until now with FlushTriggers() are saved to disk.

Returns
This function returns the trigger file path. "" is returned if this function fails.

Optionnally, it is possible to use the LIGO/Virgo convention to save trigger files:

[OUTPUT DIRECTORY]/[IFO]/[CHANNEL]_OMICRON/[GPS (5 first digits)]/file
Parameters
[in]aUseLVDirSet to true to use the LIGO/Virgo convention for trigger files.

Member Data Documentation

◆ chan_cond_ctr

unsigned int* Omicron::chan_cond_ctr
private

Number of Condition() calls /channel.

◆ chan_ctr

unsigned int* Omicron::chan_ctr
private

Number of called chunks /channel.

◆ chan_data_ctr

unsigned int* Omicron::chan_data_ctr
private

Number of LoadData() calls /channel.

◆ chan_mapsnrmax

double* Omicron::chan_mapsnrmax
private

Channel SNR max in maps (only for html)

◆ chan_proj_ctr

unsigned int* Omicron::chan_proj_ctr
private

Number of Project() calls /channel.

◆ chan_write_ctr

unsigned int* Omicron::chan_write_ctr
private

Number of WriteOutput() calls /channel.

◆ chanindex

int Omicron::chanindex
private

Current channel index (-1 = no channel).

◆ chunk_ctr

unsigned int Omicron::chunk_ctr
private

Number of called chunks.

◆ chunkcenter

vector<unsigned int> Omicron::chunkcenter
private

Chunk centers (only for html).

◆ chunktfile

vector<string> Omicron::chunktfile
private

save chunk file (only for html)

◆ ChunkVect

double* Omicron::ChunkVect
private

Chunk raw data (time domain).

◆ fClusterAlgo

string Omicron::fClusterAlgo
private

Clustering algorithm.

◆ FFL

ffl* Omicron::FFL
private

ffl object (NULL if none).

◆ FFL_inject

ffl* Omicron::FFL_inject
private

ffl for injection signals.

◆ fftplan

string Omicron::fftplan
private

FFT plan.

◆ fInjChan

vector<string> Omicron::fInjChan
private

Injection channel names.

◆ fInjFact

vector<double> Omicron::fInjFact
private

Injection factors.

◆ fMaindir

string Omicron::fMaindir
private

Main output directory.

◆ fNoLogo

bool Omicron::fNoLogo
private

No logo flag.

◆ fOptionFile

string Omicron::fOptionFile
private

Option file name.

◆ fOutFormat

string Omicron::fOutFormat
private

Output format string.

◆ fOutProducts

string Omicron::fOutProducts
private

Output product string.

◆ fratemax

double Omicron::fratemax
private

Maximum trigger rate /chunk.

◆ fsginj

unsigned int Omicron::fsginj
private

Flag to perform SG injections.

◆ fVerbosity

unsigned int Omicron::fVerbosity
private

Verbosity level.

◆ inject

InjEct** Omicron::inject
private

Software injections (in frame data) / channel.

◆ inSegments

Segments* Omicron::inSegments
private

Requested segments.

◆ maindir

string Omicron::maindir
private

Output main directory.

◆ nchannels

unsigned int Omicron::nchannels
private

Number of channels.

◆ offt

fft* Omicron::offt
private

FFT plan to FFT the input data.

◆ oinj

Oinject* Omicron::oinj
private

Software SineGauss injections.

◆ oinjfile

ofstream Omicron::oinjfile
private

Output file with sg injection parameters.

◆ outdir

vector<string> Omicron::outdir
private

Output directories / channel.

◆ outSegments

Segments** Omicron::outSegments
private

Processed segments /channel.

◆ ptm

struct tm* Omicron::ptm
private

GMT time.

◆ spectrum1

Spectrum** Omicron::spectrum1
private

1st spectrum structure / channel.

◆ spectrum2

Spectrum** Omicron::spectrum2
private

2nd spectrum structure / channel.

◆ spectrumw

Spectrum* Omicron::spectrumw
private

Spectrum structure to test whitening.

◆ status_OK

bool Omicron::status_OK
private

General status.

◆ tile

Otile* Omicron::tile
private

Tiling structure.

◆ timer

time_t Omicron::timer
private

Timer.

◆ timer_start

time_t Omicron::timer_start
private

Timer start.

◆ toffset

double Omicron::toffset
private

Time offset for plots [s].

◆ trig_ctr

unsigned int* Omicron::trig_ctr
private

Number of tiles above snr thr /channel.

◆ triggers

TriggerBuffer** Omicron::triggers
private

Output triggers / channel.

◆ TukeyWindow

double* Omicron::TukeyWindow
private

Tukey window.


The documentation for this class was generated from the following files:
Omicron::triggers
TriggerBuffer ** triggers
Output triggers / channel.
Definition: Oomicron.h:378
Omicron::FFL
ffl * FFL
ffl object (NULL if none).
Definition: Oomicron.h:374