Omicron Class Reference

Process data with the Omicron algorithm. More...

#include <Omicron.h>

Collaboration diagram for Omicron:
Collaboration graph
[legend]

List of all members.

Public Member Functions

int ConditionVector (const int aChNumber, const int aInVectSize, double *aInVect)
 Conditions a data vector.
vector< string > GetChannelList (void)
 Returns list of channels to process.
int GetChunkDuration (void)
 Returns chunk duration [s].
int GetOverlapDuration (void)
 Returns overlap duration [s].
int GetSampleFrequency (void)
 Returns working sampling frequency [Hz].
int GetSegmentDuration (void)
 Returns segment/block duration [s].
bool GetStatus (void)
 Returns class status.
bool InitSegments (Segments *aSeg)
 Initialize the segments to process.
bool MakeDirectories (const double aGPS=0)
 Create the output directory structure.
bool MakeMaps (const int aChNumber, const double aTimeCenter)
 Projects conditioned data onto the tiles and fills the maps structure.
int MakeTriggers (const int aChNumber)
 Projects conditioned data onto the tiles and fills the Triggers structure.
bool NewChunk (void)
 Load a new chunk.
void PrintStatusInfo (void)
 Prints a progress report of the processing.
bool Process (Segments *aSeg)
 Runs the full trigger analysis of data segments.
bool Scan (const double aTimeCenter)
 Runs the full scan analysis of a GPS time.
bool ScanReport (const string aScanDir="")
 Create a html report for a scan.
bool ScanTriggers (const double aTimeCenter)
 To be documented.
bool WriteMaps (void)
 Writes current maps to disk.
bool WriteTriggers (const int aChNumber)
 Writes triggers to disk.
Constructors and destructors



 Omicron (const string aOptionFile)
 Constructor of the Omicron class.
virtual ~Omicron (void)
 Destructor of the Omicron class.

Detailed Description

Process data with the Omicron algorithm.

An introduction to Omicron is available: Omicron introduction

This class was designed to offer various ways to run Omicron methods; either step-by step or in a all-in-one way. If the algorithm remains the same, Omicron provides two different outputs: triggers or maps. The triggers corresponds to tiles with a SNR value above a given threshold . The maps are a time-frequency decomposition of the input signal. Triggers are produced with the Process() method while maps are obtained with the Scan() method.

Author:
Florent Robinet

Constructor & Destructor Documentation

Omicron::Omicron ( const string  aOptionFile  ) 

Constructor of the Omicron class.

This constructor initializes all the components to run Omicron: data structures, data streams, tiling, triggers, maps, injections, monitoring, etc. An option file is required to define all the parameters to run Omicron. For more details about Omicron configuration, see this page.

The Omicron class offers a wrapping functions (see Process() and Scan()) where every analysis steps are included. Omicron can also be used piece-by-piece for tailored applications (like a low-latency searches where data are provided sequentially when they are available). In this case, the option file can be minimal.

Parameters:
aOptionFile path to the option file
Omicron::~Omicron ( void   )  [virtual]

Destructor of the Omicron class.


Member Function Documentation

int Omicron::ConditionVector ( const int  aChNumber,
const int  aInVectSize,
double *  aInVect 
)

Conditions a data vector.

Parameters:
aInVect input data vector (time domain)

Before projecting the data onto the tiles, the data are conditioned with this funtion. The input data chunk is first re-sampled. Then the data is used to estimate the noise (PSD). Finally, the data segments are normalized by the ASD.

IMPORTANT: The input vector MUST MATCH the current chunk segment loaded with NewChunk(). NO check will be performed against that!

The user must provide information about the data vector given in argument:

Parameters:
aChNumber channel number as previously declared (indexing starts at 0)
aInVectSize number of samples in the input vector

If the returned integer value is negative, it means that a fatal error occured and the Omicron object got corrupted. If it is positive, it means that the conditioning ran into some errors but the Omicron object is still valid. If it is 0, the conditioning ended correctly.

vector<string> Omicron::GetChannelList ( void   )  [inline]

Returns list of channels to process.

int Omicron::GetChunkDuration ( void   )  [inline]

Returns chunk duration [s].

int Omicron::GetOverlapDuration ( void   )  [inline]

Returns overlap duration [s].

int Omicron::GetSampleFrequency ( void   )  [inline]

Returns working sampling frequency [Hz].

int Omicron::GetSegmentDuration ( void   )  [inline]

Returns segment/block duration [s].

bool Omicron::GetStatus ( void   )  [inline]

Returns class status.

bool Omicron::InitSegments ( Segments aSeg  ) 

Initialize the segments to process.

This function should be called before any type of processing.

WARNING: the input segment object is not copied, only the pointer is saved. This means that the Segments structure pointed by aSeg should not be modified or deleted before the end of the processing.

Parameters:
*aSeg pointer to the input Segments structure
bool Omicron::MakeDirectories ( const double  aGPS = 0  ) 

Create the output directory structure.

Two directory structures are possible:

  • [path_to_outdir]/aGPS/[channel_name] if aGPS is not 0
  • [path_to_outdir]/[channel_name] if aGPS 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 GPS value is rounded to the ms 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:
aGPS GPS time
bool Omicron::MakeMaps ( const int  aChNumber,
const double  aTimeCenter 
)

Projects conditioned data onto the tiles and fills the maps structure.

This function only projects the first data segment of the current chunk onto the tiles. Maps are saved in memory. A time offset is applied to set the origin to aTimeCenter. The following maps are made:

  • one map for each Q-plane spanning the first segment of the chunk.
  • one full map combining all the Q-planes, centered on aTimeCenter and spanning each window value.
Parameters:
aChNumber channel number as previously declared (indexing starts at 0)
aTimeCenter GPS time where to set the time origin
int Omicron::MakeTriggers ( const int  aChNumber  ) 

Projects conditioned data onto the tiles and fills the Triggers structure.

It returns the current number of triggers in memory. -1 is returned if this function fails.

Parameters:
aChNumber channel number as previously declared (indexing starts at 0)
bool Omicron::NewChunk ( void   ) 

Load a new chunk.

The chunks are loaded following the structure defined in the option file and the Segments object defined with InitSegments(). When there is not enough data to fill one chunk (end of a segment), the chunk duration is shortened. This function should be called iteratively to cover the full data set. The segmentation is detailed in Odata. The returned value indicates the status of this operation:

  • true : a new chunk has been loaded
  • false : no more chunk to load
void Omicron::PrintStatusInfo ( void   ) 

Prints a progress report of the processing.

bool Omicron::Process ( Segments aSeg  ) 

Runs the full trigger analysis of data segments.

This function runs the Omicron algorithm over the data defined by the input segments. The data are segmented, conditioned, projected on the tiling structure and resulting triggers are saved on disk. This function calls the following sequence of Omicron functions:

This function is only available if a FFL structure has been previously declared.

Parameters:
aSeg Segments to process.
bool Omicron::Scan ( const double  aTimeCenter  ) 

Runs the full scan analysis of a GPS time.

This function runs the Omicron algorithm over the data defined by a central time. The data are conditioned, projected on the tiling structure and resulting maps are saved on disk. This function calls the following sequence of Omicron functions:

This function is only available if a FFL structure has been previously declared.

Parameters:
aTimeCenter central time of the maps
bool Omicron::ScanReport ( const string  aScanDir = ""  ) 

Create a html report for a scan.

Parameters:
aScanDir path to scan directory
bool Omicron::ScanTriggers ( const double  aTimeCenter  ) 

To be documented.

Parameters:
aTimeCenter central time of the maps
bool Omicron::WriteMaps ( void   ) 

Writes current maps to disk.

The maps built with MakeMaps() are saved to disk with the formats defined in Omicron(). When graphical formats are selected, an additional file is saved on disk: '[channel]_mapsummary.root'. This file contains a TTree summarizing the properties of the maps.

In addition to maps, some complementary plots are also saved (graphical formats only):

  • SNR vs. time for the frequency where the SNR is maximal
  • SNR vs. frequency for the time where the SNR is maximal
bool Omicron::WriteTriggers ( const int  aChNumber  ) 

Writes triggers to disk.

After being saved, triggers are flushed out of memory. Triggers cannot be saved if the maximum number of trigger limit has been reached.

Parameters:
aChNumber channel number as previously declared (indexing starts at 0)

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Friends Defines

Generated on 26 Sep 2014 by  doxygen 1.6.1