GlitchVeto Class Reference

Study glitch-to glitch coupling between 2 trigger data sets. More...

#include <GlitchVeto.h>

Collaboration diagram for GlitchVeto:
Collaboration graph
[legend]

List of all members.

Public Member Functions

double GetFullDeadTime (void)
 Returns the dead-time induced by all the aux cluster.
TH1 * GetMonitor (const string MonitorName)
 Returns a pointer to a given monitor.
double GetVetoDeadTime (void)
 Returns the veto dead-time.
double GetVetoEfficiency (const bool normalized=true)
 Returns the veto efficiency.
SegmentsGetVetoSegments (void)
 Returns a pointer to the current veto Segments object.
double GetVetoUsePercentage (void)
 Returns the veto use-percentage.
bool MakeVeto (void)
 Produces veto thresholds, veto segments and veto monitors.
bool ProcessGlitch2Glitch (void)
 Study the glitch-to-glitch coupling between Main and Aux data streams.
bool SetAuxTriggers (ReadTriggers *Aauxtriggers)
 Sets the aux trigger sample.
void SetFixBins (const int nfixbins=0)
 Fix the number of aux frequency bins.
bool SetMainTriggers (ReadTriggers *Amaintriggers)
 Sets the main trigger sample.
bool SetSegments (Segments *aNewSeg)
 Sets new reference segments By default, the Main triggers segments are considered as the reference.
bool SetThreshold (const string aVariableName, const double aThreshold)
 Sets a condition to define the veto.
bool WriteReport (const string aRootFileName="./myreport.root")
 Writes a ROOT file report with all the monitors.
Constructors and destructors



 GlitchVeto (const int averbose=0)
 Constructor of the GlitchVeto class.
virtual ~GlitchVeto (void)
 Destructor of the GlitchVeto class.

Detailed Description

Study glitch-to glitch coupling between 2 trigger data sets.

This class offers many functions to build a veto based on triggers (or glitches) found in a given data stream. In addition, some routines are implemented to study glitch-to-glitch coupling mechanisms and to produce effective vetoes.

Things you must know before using this class:

Here is the typical step-by-step use of this class:


Constructor & Destructor Documentation

GlitchVeto::GlitchVeto ( const int  averbose = 0  ) 

Constructor of the GlitchVeto class.

All the parameters are initialized:

  • automatic binning
  • no threshold to build vetoes
  • no frequency selection to define the coincidence
    Parameters:
    averbose verbosity level
GlitchVeto::~GlitchVeto ( void   )  [virtual]

Destructor of the GlitchVeto class.


Member Function Documentation

double GlitchVeto::GetFullDeadTime ( void   ) 

Returns the dead-time induced by all the aux cluster.

TH1 * GlitchVeto::GetMonitor ( const string  MonitorName  ) 

Returns a pointer to a given monitor.

Internal monitors of the GlitchVeto class can be accessed. Do not delete or modify the return object since it is internally used by the class. Here are the name of the monitor which can be accessed:

  • "h_Astat": Aux cluster statistic in (aux) frequency and SNR bins.
  • "h_Astat_cum": Aux cluster statistic in (aux) frequency and cumulative SNR bins.
  • "h_Mstat": Main cluster statistic in (main) frequency and SNR bins.
  • "h_Mstat_cum": Main cluster statistic in (main) frequency and cumulative SNR bins.
  • "h_dead": Aux cluster dead time in (aux) frequency and SNR bins.
  • "h_dead_cum": Aux cluster dead time in (aux) frequency and cumulative SNR bins.

NULL is returned if the monitor does not exist.

Parameters:
MonitorName name of the monitor to be returned
double GlitchVeto::GetVetoDeadTime ( void   ) 

Returns the veto dead-time.

double GlitchVeto::GetVetoEfficiency ( const bool  normalized = true  ) 

Returns the veto efficiency.

if normalized=0, the raw number of vetoed triggers is returned. if normalized=1, the number of vetoed triggers is normalized by the total number of main triggers.

Segments* GlitchVeto::GetVetoSegments ( void   )  [inline]

Returns a pointer to the current veto Segments object.

Do not delete or modify.

double GlitchVeto::GetVetoUsePercentage ( void   ) 

Returns the veto use-percentage.

bool GlitchVeto::MakeVeto ( void   ) 

Produces veto thresholds, veto segments and veto monitors.

After the coupling is characterized (see ProcessGlitch2Glitch()), this function produces the veto based on the conditions defined with the SetThreshold() function. 3 steps are performed:

  • A SNR threshold is optimized. This threshold is tuned to verify ALL the conditions defined with the SetThreshold() function.
  • The veto segments are produced. Each veto segment is defined by the aux. clusters (start-end) above the optimized SNR threshold. Only the segments intersecting the reference segments are produced.
  • the performance of the veto are measured (efficiency, use-percentage, dead-time...) and additional monitors are created.
bool GlitchVeto::ProcessGlitch2Glitch ( void   ) 

Study the glitch-to-glitch coupling between Main and Aux data streams.

3 trigger parameters are considered to characterize this coupling: time / frequency / SNR. This function should always be called after both the main and aux trigger sample being defined. Four internal steps are performed:

  • the parameter space is reset
  • parameters are binned
  • the coincidence between the 2 streams is performed
  • the tuning monitors are filled
bool GlitchVeto::SetAuxTriggers ( ReadTriggers Aauxtriggers  ) 

Sets the aux trigger sample.

Input triggers are represented by a ReadTriggers object. It is mandatory that triggers are clustered before calling this function. The coincidence can only be performed over clusters. For more details, see ReadTriggers::Clusterize().

Parameters:
Aauxtriggers pointer to the aux trigger sample
void GlitchVeto::SetFixBins ( const int  nfixbins = 0  )  [inline]

Fix the number of aux frequency bins.

By default (nfixbins=0), the frequency binning is automatically computed based on the available statistic. This function fixes the number of bins to nfixbins;

Parameters:
nfixbins number of frequency bins
bool GlitchVeto::SetMainTriggers ( ReadTriggers Amaintriggers  ) 

Sets the main trigger sample.

Input triggers are represented by a ReadTriggers object. It is mandatory that triggers are clustered before calling this function. The coincidence can only be performed over clusters. For more details, see ReadTriggers::Clusterize().

Parameters:
Amaintriggers pointer to the main trigger sample
bool GlitchVeto::SetSegments ( Segments aNewSeg  ) 

Sets new reference segments By default, the Main triggers segments are considered as the reference.

It is possible to change the reference segments with this function. The new segments will be intersected with the Main triggers segments before being used as a reference for the coincidence. Therefore, this function should only be called after the Main triggers being set.

Parameters:
aNewSeg pointer to the new Segments object
bool GlitchVeto::SetThreshold ( const string  aVariableName,
const double  aThreshold 
)

Sets a condition to define the veto.

4 types of conditions can be defined with a keyword and a threshold value: 'aVariableName' > 'aThreshold', where aVariableName=

  • "UP" stands for use-percentage
  • "D" stands for dead-time
  • "ED" stands for efficiency over dead-time
  • "NV" stands for the number of main cluster involved in a coincidence (Nveto)
  • "NU" stands for the number of used aux cluster involved in a coincidence (Nuse)

This function should be called several times to define a multi-condition veto.

Parameters:
aVariableName keyword to define on which variable the condition should be applied
aThreshold threshold value to define the veto condition
bool GlitchVeto::WriteReport ( const string  aRootFileName = "./myreport.root"  ) 

Writes a ROOT file report with all the monitors.

Here is the definition of all the monitors:

  • (TH2D)"h_Astat": Aux cluster statistic in (aux) frequency and SNR bins.
  • (TH2D)"h_Astat_cum": Aux cluster statistic in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_Mstat": Main cluster statistic in (main) frequency and SNR bins.
  • (TH2D)"h_Mstat_cum": Main cluster statistic in (main) frequency and cumulative SNR bins.
  • (TH2D)"h_dead": Aux cluster dead time in (aux) frequency and SNR bins.
  • (TH2D)"h_dead_cum": Aux cluster dead time in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_d": Same as h_dead_cum but normalized by the reference livetime.
  • (TH1D)"h_mr": Main cluster rate in time bins.
  • (TH1D)"h_ar": Aux cluster rate in time bins.
  • (TGraph)"g_Msnrtime": Main cluster SNR vs time scatter plot.
  • (TGraph)"g_snrsnr": Coincident events represented as (Main) SNR vs (Aux) SNR scatter plot.
  • (TH2D)"h_ff": Coincident events represented as (Main) SNR vs (Aux) SNR histogram.
  • (TH2D)"h_use": Number of Aux clusters involved in a coincidence in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_use_cum": cumulative number of Aux clusters involved in a coincidence in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_nveto": Number of Main clusters involved in a coincidence in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_nveto_cum": cumulative number of Main clusters involved in a coincidence in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_up": Veto use-percentage in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_e": Veto efficiency in (aux) frequency and cumulative SNR bins.
  • (TH2D)"h_ed": Veto efficiency/dead-time in (aux) frequency and cumulative SNR bins.
  • (TH1D)"h_Me": Veto efficiency in (main) frequency bins.
  • (TH1D)"h_Ause": number of Aux clusters used in the veto in (aux) frequency bins.
  • (TH1D)"h_vr": Veto rate in time bins.
  • (TGraph)"g_snrsnr_veto": Coincident events used for the veto represented as (Main) SNR vs (Aux) SNR scatter plot.
  • (TH2D)"h_ff_veto": Coincident events used for the veto represented as (Main) SNR vs (Aux) SNR histogram.
  • (TH1D)"h_thr": Veto optimized threshold in (aux) frequency and bins.
  • (Segments)"VetoSeg": Veto Segments object.
  • (TTree)"Tfom": Veto performance numbers.
    Parameters:
    aRootFileName output ROOT file name

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

Generated on 29 Sep 2016 by  doxygen 1.6.1