GWOLLUM  4.2.0
Tools for gravitational-wave analyses
Triggers.h
Go to the documentation of this file.
1 
6 #ifndef __Triggers__
7 #define __Triggers__
8 
9 #include <TROOT.h>
10 #include <TTreeIndex.h>
11 #include "Segments.h"
12 
13 using namespace std;
14 
27 class Triggers {
28 
29  public:
30 
48  Triggers(const unsigned int aVerbose=0);
49 
53  virtual ~Triggers(void);
63  void Reset(void);
64 
79  bool AddTrigger(const double aTime, const double aFrequency,
80  const double aSNR, const double aQ,
81  const double aTstart, const double aTend,
82  const double aFstart, const double aFend,
83  const double aAmplitude, const double aPhase);
84 
91  bool SortTriggers(void);
92 
98  inline void SetClusterizeDt(const double aDt){ clusterize_delta_t=aDt; };
99 
104  inline double GetClusterizeDt(void){ return clusterize_delta_t; };
105 
111  inline void SetClusterizeSizeMin(const unsigned int aSizeMin){ clusterize_sizemin=aSizeMin; };
112 
117  inline unsigned int GetClusterizeSizeMin(void){ return clusterize_sizemin; };
118 
124  inline void SetClusterizeSnrThr(const double aSnrThr){ clusterize_snr_thr=aSnrThr; };
125 
130  inline double GetClusterizeSnrThr(void){ return clusterize_snr_thr; };
131 
139  inline void SetClusterTag(const unsigned int aClusterIndex, const int aTag){ Ctag[aClusterIndex]=aTag; };
140 
145  inline void SetClusterTag(const int aTag){
146  for(unsigned int c=0; c<Ctstart.size(); c++) Ctag[c]=aTag;
147  };
148 
158  bool SetTriggerBranchStatus(const string aBname, const bool aStatus=true);
159 
164  void ResetClusters(void);
165 
200  bool Clusterize(const int aTag=1);
201 
206  inline Long64_t GetTriggerN(void){ return Ttree->GetEntries(); };
207 
213  inline double GetTriggerTime(const Long64_t aTriggerIndex){
214  if(Ttree->GetEntry(aTriggerIndex)>0) return Ttime;
215  return 0.0;
216  };
217 
223  inline double GetTriggerFrequency(const Long64_t aTriggerIndex){
224  if(Ttree->GetEntry(aTriggerIndex)>0) return Tfreq;
225  return 0.0;
226  };
227 
233  inline double GetTriggerQ(const Long64_t aTriggerIndex){
234  if(Ttree->GetEntry(aTriggerIndex)>0) return Tq;
235  return 0.0;
236  };
237 
243  inline double GetTriggerSnr(const Long64_t aTriggerIndex){
244  if(Ttree->GetEntry(aTriggerIndex)>0) return Tsnr;
245  return 0.0;
246  };
247 
253  inline double GetTriggerTimeStart(const Long64_t aTriggerIndex){
254  if(Ttree->GetEntry(aTriggerIndex)>0) return Ttstart;
255  return 0.0;
256  };
257 
263  inline double GetTriggerTimeEnd(const Long64_t aTriggerIndex){
264  if(Ttree->GetEntry(aTriggerIndex)>0) return Ttend;
265  return 0.0;
266  };
267 
273  inline double GetTriggerFrequencyStart(const Long64_t aTriggerIndex){
274  if(Ttree->GetEntry(aTriggerIndex)>0) return Tfstart;
275  return 0.0;
276  };
277 
283  inline double GetTriggerFrequencyEnd(const Long64_t aTriggerIndex){
284  if(Ttree->GetEntry(aTriggerIndex)>0) return Tfend;
285  return 0.0;
286  };
287 
293  inline double GetTriggerAmplitude(const Long64_t aTriggerIndex){
294  if(Ttree->GetEntry(aTriggerIndex)>0) return Tamp;
295  return 0.0;
296  };
297 
303  inline double GetTriggerPhase(const Long64_t aTriggerIndex){
304  if(Ttree->GetEntry(aTriggerIndex)>0) return Tph;
305  return -99.0;
306  };
307 
313  inline double GetTriggerDuration(const Long64_t aTriggerIndex){
314  if(Ttree->GetEntry(aTriggerIndex)>0) return Ttend-Ttstart;
315  return 0.0;
316  };
317 
323  inline double GetTriggerBandwidth(const Long64_t aTriggerIndex){
324  if(Ttree->GetEntry(aTriggerIndex)>0) return Tfend-Tfstart;
325  return 0.0;
326  };
327 
331  inline unsigned int GetClusterN(void){ return Ctstart.size(); };
332 
338  inline double GetClusterTime(const unsigned int aClusterIndex){
339  return Ctime[aClusterIndex];
340  };
341 
347  inline double GetClusterFrequency(const unsigned int aClusterIndex){
348  return Cfreq[aClusterIndex];
349  };
350 
356  inline double GetClusterQ(const unsigned int aClusterIndex){
357  return Cq[aClusterIndex];
358  };
359 
365  inline double GetClusterSnr(const unsigned int aClusterIndex){
366  return Csnr[aClusterIndex];
367  };
368 
374  inline double GetClusterTimeStart(const unsigned int aClusterIndex){
375  return Ctstart[aClusterIndex];
376  };
377 
383  inline double GetClusterTimeEnd(const unsigned int aClusterIndex){
384  return Ctend[aClusterIndex];
385  };
386 
392  inline double GetClusterFrequencyStart(const unsigned int aClusterIndex){
393  return Cfstart[aClusterIndex];
394  };
395 
401  inline double GetClusterFrequencyEnd(const unsigned int aClusterIndex){
402  return Cfend[aClusterIndex];
403  };
404 
410  inline double GetClusterAmplitude(const unsigned int aClusterIndex){
411  return Camp[aClusterIndex];
412  };
413 
419  inline double GetClusterPhase(const unsigned int aClusterIndex){
420  return Cph[aClusterIndex];
421  };
422 
428  inline double GetClusterDuration(const unsigned int aClusterIndex){
429  return Ctend[aClusterIndex]-Ctstart[aClusterIndex];
430  };
431 
437  inline double GetClusterBandwidth(const unsigned int aClusterIndex){
438  return Cfend[aClusterIndex]-Cfstart[aClusterIndex];
439  };
440 
446  inline unsigned int GetClusterSize(const unsigned int aClusterIndex){
447  return Csize[aClusterIndex];
448  };
449 
455  inline int GetClusterTag(const unsigned int aClusterIndex){
456  return Ctag[aClusterIndex];
457  };
458 
464  inline Long64_t GetClusterFirstTrigger(const unsigned int aClusterIndex){
465  return Cfirstentry[aClusterIndex];
466  };
467 
471  inline double GetClusterMeanDuration(void){ return cl_meandur; };
472 
476  inline double GetClusterMaxDuration(void){ return cl_maxdur; };
477 
481  inline double GetClusterTotalDuration(void){ return cl_totdur; };
482 
488  int GetClusterIndex(const double aTime);
489 
500  bool ReadTriggerFiles(const string aPattern, const string aDirectory="");
501 
502  protected:
503 
504  // GENERAL
505  int Verbose;
506  int randid;
507  string srandid;
508 
509  // TRIGGERS
510  TTree *Ttree;
511  TChain *Ttree_read;
512  TTree *Ttree_write;
513  double Ttime;
514  double Tfreq;
515  double Tq;
516  double Tsnr;
517  double Ttstart;
518  double Ttend;
519  double Tfstart;
520  double Tfend;
521  double Tamp;
522  double Tph;
524  Long64_t *Toffsets;
525 
526  private:
527 
528  // CLUSTERS
529  vector<double> Ctime;
530  vector<double> Ctstart;
531  vector<double> Ctend;
532  vector<double> Cfreq;
533  vector<double> Cfstart;
534  vector<double> Cfend;
535  vector<double> Csnr;
536  vector<double> Camp;
537  vector<double> Cq;
538  vector<double> Cph;
539  vector<Long64_t> Cfirstentry;
540  vector<unsigned int> Csize;
541  vector <int> Ctag;
542  double cl_meandur;
543  double cl_maxdur;
544  double cl_totdur;
545 
546  // GENERAL
547  bool readmode;
548 
549  // CLUSTERIZE
551  unsigned int clusterize_sizemin;
553 
554  ClassDef(Triggers,0)
555 };
556 
557 #endif
558 
559 
Time segment list management.
Manage a trigger set.
Definition: Triggers.h:27
double GetTriggerPhase(const Long64_t aTriggerIndex)
Returns the phase of a given trigger [rad].
Definition: Triggers.h:303
vector< double > Ctime
Cluster GPS time.
Definition: Triggers.h:529
double GetTriggerFrequencyEnd(const Long64_t aTriggerIndex)
Returns the end frequency of a given trigger [Hz].
Definition: Triggers.h:283
double clusterize_snr_thr
Minimum cluster SNR .
Definition: Triggers.h:552
bool readmode
Read/write mode: true=read, false=write.
Definition: Triggers.h:547
void SetClusterTag(const int aTag)
Sets a new tag value for all clusters.
Definition: Triggers.h:145
TTree * Ttree
Pointer to active Ttree.
Definition: Triggers.h:510
double GetClusterAmplitude(const unsigned int aClusterIndex)
Returns the amplitude of a given cluster.
Definition: Triggers.h:410
vector< double > Ctend
Cluster GPS time end.
Definition: Triggers.h:531
double Tsnr
Trigger SNR.
Definition: Triggers.h:516
double GetClusterMaxDuration(void)
Returns the maximal duration of clusters [s].
Definition: Triggers.h:476
double Ttstart
Trigger GPS starting time.
Definition: Triggers.h:517
Triggers(const unsigned int aVerbose=0)
Constructor of the Triggers class.
unsigned int GetClusterSize(const unsigned int aClusterIndex)
Returns the size (number of triggers) a given cluster.
Definition: Triggers.h:446
vector< double > Camp
Cluster Amplitude.
Definition: Triggers.h:536
TChain * Ttree_read
Trigger tree read-mode.
Definition: Triggers.h:511
double GetTriggerTimeStart(const Long64_t aTriggerIndex)
Returns the start time of a given trigger [s].
Definition: Triggers.h:253
double Tfend
Trigger ending frequency [Hz].
Definition: Triggers.h:520
double Ttime
Trigger GPS time.
Definition: Triggers.h:513
void SetClusterizeDt(const double aDt)
Sets a new clustering parameter.
Definition: Triggers.h:98
double Tamp
Trigger amplitude.
Definition: Triggers.h:521
Long64_t GetClusterFirstTrigger(const unsigned int aClusterIndex)
Returns the index of the first trigger in a given cluster.
Definition: Triggers.h:464
double GetClusterTimeEnd(const unsigned int aClusterIndex)
Returns the end time of a given cluster [s].
Definition: Triggers.h:383
double Tfreq
Trigger frequency [Hz].
Definition: Triggers.h:514
double GetTriggerSnr(const Long64_t aTriggerIndex)
Returns the signal-to-noise ratio of a given trigger.
Definition: Triggers.h:243
double cl_meandur
Cluster mean duration.
Definition: Triggers.h:542
double GetClusterBandwidth(const unsigned int aClusterIndex)
Returns the bandwidth of a given cluster [Hz].
Definition: Triggers.h:437
double cl_maxdur
Cluster max duration.
Definition: Triggers.h:543
unsigned int GetClusterN(void)
Returns the current number of clusters in memory.
Definition: Triggers.h:331
vector< double > Ctstart
Cluster GPS time start.
Definition: Triggers.h:530
double GetClusterSnr(const unsigned int aClusterIndex)
Returns the signal-to-noise ratio of a given cluster.
Definition: Triggers.h:365
double Ttend
Trigger GPS ending time.
Definition: Triggers.h:518
vector< unsigned int > Csize
Cluster size.
Definition: Triggers.h:540
double GetTriggerFrequencyStart(const Long64_t aTriggerIndex)
Returns the start frequency of a given trigger [Hz].
Definition: Triggers.h:273
double GetClusterTime(const unsigned int aClusterIndex)
Returns the time of a given cluster [s].
Definition: Triggers.h:338
vector< double > Cph
Cluster phase.
Definition: Triggers.h:538
double GetTriggerQ(const Long64_t aTriggerIndex)
Returns the quality factor of a given trigger.
Definition: Triggers.h:233
int Ttstart_us
Trigger starting time (us).
Definition: Triggers.h:523
double cl_totdur
Cluster total duration.
Definition: Triggers.h:544
double GetClusterFrequency(const unsigned int aClusterIndex)
Returns the frequency of a given cluster [Hz].
Definition: Triggers.h:347
string srandid
Random integer (string) to identify the class object.
Definition: Triggers.h:507
double GetClusterQ(const unsigned int aClusterIndex)
Returns the quality factor of a given cluster.
Definition: Triggers.h:356
vector< double > Cfreq
Cluster frequency.
Definition: Triggers.h:532
int randid
Random integer to identify the class object.
Definition: Triggers.h:506
TTree * Ttree_write
Trigger tree write-mode.
Definition: Triggers.h:512
double clusterize_delta_t
Time clustering parameter [s].
Definition: Triggers.h:550
double GetTriggerDuration(const Long64_t aTriggerIndex)
Returns the duration of a given trigger [s].
Definition: Triggers.h:313
double GetClusterDuration(const unsigned int aClusterIndex)
Returns the duration of a given cluster [s].
Definition: Triggers.h:428
double GetTriggerAmplitude(const Long64_t aTriggerIndex)
Returns the amplitude of a given trigger.
Definition: Triggers.h:293
void SetClusterizeSnrThr(const double aSnrThr)
Sets the SNR threshold for clustering: .
Definition: Triggers.h:124
vector< double > Cq
Cluster Q.
Definition: Triggers.h:537
vector< int > Ctag
Cluster tag.
Definition: Triggers.h:541
double GetClusterTimeStart(const unsigned int aClusterIndex)
Returns the start time of a given cluster [s].
Definition: Triggers.h:374
double GetTriggerTime(const Long64_t aTriggerIndex)
Returns the time of a given trigger [s].
Definition: Triggers.h:213
double Tfstart
Trigger starting frequency [Hz].
Definition: Triggers.h:519
double GetTriggerFrequency(const Long64_t aTriggerIndex)
Returns the frequency of a given trigger [Hz].
Definition: Triggers.h:223
double GetClusterizeDt(void)
Gets the clustering parameter.
Definition: Triggers.h:104
double GetClusterMeanDuration(void)
Returns the mean duration of clusters [s].
Definition: Triggers.h:471
Long64_t GetTriggerN(void)
Returns the current number of triggers in memory.
Definition: Triggers.h:206
vector< double > Csnr
Cluster SNR.
Definition: Triggers.h:535
double GetTriggerBandwidth(const Long64_t aTriggerIndex)
Returns the bandwidth of a given trigger [Hz].
Definition: Triggers.h:323
double GetClusterFrequencyEnd(const unsigned int aClusterIndex)
Returns the end frequency of a given cluster [Hz].
Definition: Triggers.h:401
int Verbose
verbosity level
Definition: Triggers.h:505
vector< double > Cfend
Cluster frequency end.
Definition: Triggers.h:534
double Tph
Trigger phase [rad].
Definition: Triggers.h:522
vector< double > Cfstart
Cluster frequency start.
Definition: Triggers.h:533
void SetClusterizeSizeMin(const unsigned int aSizeMin)
Sets the cluster minimal size: .
Definition: Triggers.h:111
unsigned int clusterize_sizemin
Minimum cluster size .
Definition: Triggers.h:551
double GetClusterPhase(const unsigned int aClusterIndex)
Returns the phase of a given cluster [rad].
Definition: Triggers.h:419
vector< Long64_t > Cfirstentry
Cluster first trigger entry.
Definition: Triggers.h:539
double GetClusterFrequencyStart(const unsigned int aClusterIndex)
Returns the start frequency of a given cluster [Hz].
Definition: Triggers.h:392
double GetClusterizeSnrThr(void)
Gets the SNR threshold for clustering.
Definition: Triggers.h:130
double Tq
Trigger Q.
Definition: Triggers.h:515
double GetClusterTotalDuration(void)
Returns the total duration of clusters [s].
Definition: Triggers.h:481
int GetClusterTag(const unsigned int aClusterIndex)
Returns the tag of a given cluster.
Definition: Triggers.h:455
double GetTriggerTimeEnd(const Long64_t aTriggerIndex)
Returns the end time of a given trigger [s].
Definition: Triggers.h:263
void SetClusterTag(const unsigned int aClusterIndex, const int aTag)
Sets a new cluster tag value.
Definition: Triggers.h:139
unsigned int GetClusterizeSizeMin(void)
Gets the cluster minimal size: .
Definition: Triggers.h:117
Long64_t * Toffsets
Tree offsets in the chain (read-mode) - DO NOT DELETE.
Definition: Triggers.h:524