GWOLLUM 4.2.0
Tools for gravitational-wave analyses
Loading...
Searching...
No Matches
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
13using namespace std;
14
28
29 public:
30
48 Triggers(const unsigned int aVerbose=0);
49
53 virtual ~Triggers(void);
61 inline bool GetStatus(void){ return mon->GetStatus(); };
62
68 void Reset(void);
69
84 bool AddTrigger(const double aTime, const double aFrequency,
85 const double aSNR, const double aQ,
86 const double aTstart, const double aTend,
87 const double aFstart, const double aFend,
88 const double aAmplitude, const double aPhase);
89
96 bool SortTriggers(void);
97
103 inline void SetClusterizeDt(const double aDt){ clusterize_delta_t=aDt; };
104
109 inline double GetClusterizeDt(void){ return clusterize_delta_t; };
110
116 inline void SetClusterizeSizeMin(const unsigned int aSizeMin){ clusterize_sizemin=aSizeMin; };
117
122 inline unsigned int GetClusterizeSizeMin(void){ return clusterize_sizemin; };
123
129 inline void SetClusterizeSnrThr(const double aSnrThr){ clusterize_snr_thr=aSnrThr; };
130
135 inline double GetClusterizeSnrThr(void){ return clusterize_snr_thr; };
136
144 inline void SetClusterTag(const unsigned int aClusterIndex, const int aTag){ Ctag[aClusterIndex]=aTag; };
145
150 inline void SetClusterTag(const int aTag){
151 for(unsigned int c=0; c<Ctstart.size(); c++) Ctag[c]=aTag;
152 };
153
163 bool SetTriggerBranchStatus(const string aBname, const bool aStatus=true);
164
169 void ResetClusters(void);
170
205 bool Clusterize(const int aTag=1);
206
211 inline Long64_t GetTriggerN(void){ return Ttree->GetEntries(); };
212
218 inline double GetTriggerTime(const Long64_t aTriggerIndex){
219 if(Ttree->GetEntry(aTriggerIndex)>0) return Ttime;
220 return 0.0;
221 };
222
228 inline double GetTriggerFrequency(const Long64_t aTriggerIndex){
229 if(Ttree->GetEntry(aTriggerIndex)>0) return Tfreq;
230 return 0.0;
231 };
232
238 inline double GetTriggerQ(const Long64_t aTriggerIndex){
239 if(Ttree->GetEntry(aTriggerIndex)>0) return Tq;
240 return 0.0;
241 };
242
248 inline double GetTriggerSnr(const Long64_t aTriggerIndex){
249 if(Ttree->GetEntry(aTriggerIndex)>0) return Tsnr;
250 return 0.0;
251 };
252
258 inline double GetTriggerTimeStart(const Long64_t aTriggerIndex){
259 if(Ttree->GetEntry(aTriggerIndex)>0) return Ttstart;
260 return 0.0;
261 };
262
268 inline double GetTriggerTimeEnd(const Long64_t aTriggerIndex){
269 if(Ttree->GetEntry(aTriggerIndex)>0) return Ttend;
270 return 0.0;
271 };
272
278 inline double GetTriggerFrequencyStart(const Long64_t aTriggerIndex){
279 if(Ttree->GetEntry(aTriggerIndex)>0) return Tfstart;
280 return 0.0;
281 };
282
288 inline double GetTriggerFrequencyEnd(const Long64_t aTriggerIndex){
289 if(Ttree->GetEntry(aTriggerIndex)>0) return Tfend;
290 return 0.0;
291 };
292
298 inline double GetTriggerAmplitude(const Long64_t aTriggerIndex){
299 if(Ttree->GetEntry(aTriggerIndex)>0) return Tamp;
300 return 0.0;
301 };
302
308 inline double GetTriggerPhase(const Long64_t aTriggerIndex){
309 if(Ttree->GetEntry(aTriggerIndex)>0) return Tph;
310 return -99.0;
311 };
312
318 inline double GetTriggerDuration(const Long64_t aTriggerIndex){
319 if(Ttree->GetEntry(aTriggerIndex)>0) return Ttend-Ttstart;
320 return 0.0;
321 };
322
328 inline double GetTriggerBandwidth(const Long64_t aTriggerIndex){
329 if(Ttree->GetEntry(aTriggerIndex)>0) return Tfend-Tfstart;
330 return 0.0;
331 };
332
336 inline unsigned int GetClusterN(void){ return Ctstart.size(); };
337
343 inline double GetClusterTime(const unsigned int aClusterIndex){
344 return Ctime[aClusterIndex];
345 };
346
352 inline double GetClusterFrequency(const unsigned int aClusterIndex){
353 return Cfreq[aClusterIndex];
354 };
355
361 inline double GetClusterQ(const unsigned int aClusterIndex){
362 return Cq[aClusterIndex];
363 };
364
370 inline double GetClusterSnr(const unsigned int aClusterIndex){
371 return Csnr[aClusterIndex];
372 };
373
379 inline double GetClusterTimeStart(const unsigned int aClusterIndex){
380 return Ctstart[aClusterIndex];
381 };
382
388 inline double GetClusterTimeEnd(const unsigned int aClusterIndex){
389 return Ctend[aClusterIndex];
390 };
391
397 inline double GetClusterFrequencyStart(const unsigned int aClusterIndex){
398 return Cfstart[aClusterIndex];
399 };
400
406 inline double GetClusterFrequencyEnd(const unsigned int aClusterIndex){
407 return Cfend[aClusterIndex];
408 };
409
415 inline double GetClusterAmplitude(const unsigned int aClusterIndex){
416 return Camp[aClusterIndex];
417 };
418
424 inline double GetClusterPhase(const unsigned int aClusterIndex){
425 return Cph[aClusterIndex];
426 };
427
433 inline double GetClusterDuration(const unsigned int aClusterIndex){
434 return Ctend[aClusterIndex]-Ctstart[aClusterIndex];
435 };
436
442 inline double GetClusterBandwidth(const unsigned int aClusterIndex){
443 return Cfend[aClusterIndex]-Cfstart[aClusterIndex];
444 };
445
451 inline unsigned int GetClusterSize(const unsigned int aClusterIndex){
452 return Csize[aClusterIndex];
453 };
454
460 inline int GetClusterTag(const unsigned int aClusterIndex){
461 return Ctag[aClusterIndex];
462 };
463
469 inline Long64_t GetClusterFirstTrigger(const unsigned int aClusterIndex){
470 return Cfirstentry[aClusterIndex];
471 };
472
476 inline double GetClusterMeanDuration(void){ return cl_meandur; };
477
481 inline double GetClusterMaxDuration(void){ return cl_maxdur; };
482
486 inline double GetClusterTotalDuration(void){ return cl_totdur; };
487
493 int GetClusterIndex(const double aTime);
494
505 bool ReadTriggerFiles(const string aPattern, const string aDirectory="");
506
507 protected:
508
509 // GENERAL
511 int randid;
512 string srandid;
513
514 // TRIGGERS
515 TTree *Ttree;
516 TChain *Ttree_read;
517 TTree *Ttree_write;
518 double Ttime;
519 double Tfreq;
520 double Tq;
521 double Tsnr;
522 double Ttstart;
523 double Ttend;
524 double Tfstart;
525 double Tfend;
526 double Tamp;
527 double Tph;
529 Long64_t *Toffsets;
530
531 private:
532
533 // CLUSTERS
534 vector<double> Ctime;
535 vector<double> Ctstart;
536 vector<double> Ctend;
537 vector<double> Cfreq;
538 vector<double> Cfstart;
539 vector<double> Cfend;
540 vector<double> Csnr;
541 vector<double> Camp;
542 vector<double> Cq;
543 vector<double> Cph;
544 vector<Long64_t> Cfirstentry;
545 vector<unsigned int> Csize;
546 vector <int> Ctag;
547 double cl_meandur;
548 double cl_maxdur;
549 double cl_totdur;
550
551 // GENERAL
552 bool readmode;
553
554 // CLUSTERIZE
556 unsigned int clusterize_sizemin;
558
559 ClassDef(Triggers,0)
560};
561
562#endif
563
564
Time segment list management.
Monitor a GWOLLUM processing.
Definition Monitor.h:39
bool GetStatus(void)
Returns the object status.
Definition Monitor.h:109
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:308
vector< double > Ctime
Cluster GPS time.
Definition Triggers.h:534
double GetTriggerFrequencyEnd(const Long64_t aTriggerIndex)
Returns the end frequency of a given trigger [Hz].
Definition Triggers.h:288
double clusterize_snr_thr
Minimum cluster SNR .
Definition Triggers.h:557
virtual ~Triggers(void)
Destructor of the Triggers class.
Definition Triggers.cc:52
bool readmode
Read/write mode: true=read, false=write.
Definition Triggers.h:552
void SetClusterTag(const int aTag)
Sets a new tag value for all clusters.
Definition Triggers.h:150
TTree * Ttree
Pointer to active Ttree.
Definition Triggers.h:515
double GetClusterAmplitude(const unsigned int aClusterIndex)
Returns the amplitude of a given cluster.
Definition Triggers.h:415
vector< double > Ctend
Cluster GPS time end.
Definition Triggers.h:536
bool SetTriggerBranchStatus(const string aBname, const bool aStatus=true)
Modifies the branch status of the trigger tree.
Definition Triggers.cc:178
double Tsnr
Trigger SNR.
Definition Triggers.h:521
double GetClusterMaxDuration(void)
Returns the maximal duration of clusters [s].
Definition Triggers.h:481
double Ttstart
Trigger GPS starting time.
Definition Triggers.h:522
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:451
vector< double > Camp
Cluster Amplitude.
Definition Triggers.h:541
int GetClusterIndex(const double aTime)
Returns the index of cluster overlapping a given GPS time.
Definition Triggers.cc:362
TChain * Ttree_read
Trigger tree read-mode.
Definition Triggers.h:516
double GetTriggerTimeStart(const Long64_t aTriggerIndex)
Returns the start time of a given trigger [s].
Definition Triggers.h:258
double Tfend
Trigger ending frequency [Hz].
Definition Triggers.h:525
double Ttime
Trigger GPS time.
Definition Triggers.h:518
void SetClusterizeDt(const double aDt)
Sets a new clustering parameter.
Definition Triggers.h:103
double Tamp
Trigger amplitude.
Definition Triggers.h:526
Long64_t GetClusterFirstTrigger(const unsigned int aClusterIndex)
Returns the index of the first trigger in a given cluster.
Definition Triggers.h:469
double GetClusterTimeEnd(const unsigned int aClusterIndex)
Returns the end time of a given cluster [s].
Definition Triggers.h:388
double Tfreq
Trigger frequency [Hz].
Definition Triggers.h:519
double GetTriggerSnr(const Long64_t aTriggerIndex)
Returns the signal-to-noise ratio of a given trigger.
Definition Triggers.h:248
void ResetClusters(void)
Resets the list of clusters.
Definition Triggers.cc:194
double cl_meandur
Cluster mean duration.
Definition Triggers.h:547
bool SortTriggers(void)
Sort triggers by increasing values of tstart (only available in write-mode).
Definition Triggers.cc:116
double GetClusterBandwidth(const unsigned int aClusterIndex)
Returns the bandwidth of a given cluster [Hz].
Definition Triggers.h:442
double cl_maxdur
Cluster max duration.
Definition Triggers.h:548
unsigned int GetClusterN(void)
Returns the current number of clusters in memory.
Definition Triggers.h:336
vector< double > Ctstart
Cluster GPS time start.
Definition Triggers.h:535
bool Clusterize(const int aTag=1)
Clusters the triggers.
Definition Triggers.cc:223
double GetClusterSnr(const unsigned int aClusterIndex)
Returns the signal-to-noise ratio of a given cluster.
Definition Triggers.h:370
double Ttend
Trigger GPS ending time.
Definition Triggers.h:523
vector< unsigned int > Csize
Cluster size.
Definition Triggers.h:545
double GetTriggerFrequencyStart(const Long64_t aTriggerIndex)
Returns the start frequency of a given trigger [Hz].
Definition Triggers.h:278
double GetClusterTime(const unsigned int aClusterIndex)
Returns the time of a given cluster [s].
Definition Triggers.h:343
vector< double > Cph
Cluster phase.
Definition Triggers.h:543
double GetTriggerQ(const Long64_t aTriggerIndex)
Returns the quality factor of a given trigger.
Definition Triggers.h:238
int Ttstart_us
Trigger starting time (us).
Definition Triggers.h:528
double cl_totdur
Cluster total duration.
Definition Triggers.h:549
double GetClusterFrequency(const unsigned int aClusterIndex)
Returns the frequency of a given cluster [Hz].
Definition Triggers.h:352
string srandid
Random integer (string) to identify the class object.
Definition Triggers.h:512
double GetClusterQ(const unsigned int aClusterIndex)
Returns the quality factor of a given cluster.
Definition Triggers.h:361
vector< double > Cfreq
Cluster frequency.
Definition Triggers.h:537
int randid
Random integer to identify the class object.
Definition Triggers.h:511
TTree * Ttree_write
Trigger tree write-mode.
Definition Triggers.h:517
double clusterize_delta_t
Time clustering parameter [s].
Definition Triggers.h:555
double GetTriggerDuration(const Long64_t aTriggerIndex)
Returns the duration of a given trigger [s].
Definition Triggers.h:318
bool ReadTriggerFiles(const string aPattern, const string aDirectory="")
Reads a set of trigger files.
Definition Triggers.cc:376
double GetClusterDuration(const unsigned int aClusterIndex)
Returns the duration of a given cluster [s].
Definition Triggers.h:433
double GetTriggerAmplitude(const Long64_t aTriggerIndex)
Returns the amplitude of a given trigger.
Definition Triggers.h:298
void SetClusterizeSnrThr(const double aSnrThr)
Sets the SNR threshold for clustering: .
Definition Triggers.h:129
vector< double > Cq
Cluster Q.
Definition Triggers.h:542
vector< int > Ctag
Cluster tag.
Definition Triggers.h:546
double GetClusterTimeStart(const unsigned int aClusterIndex)
Returns the start time of a given cluster [s].
Definition Triggers.h:379
double GetTriggerTime(const Long64_t aTriggerIndex)
Returns the time of a given trigger [s].
Definition Triggers.h:218
double Tfstart
Trigger starting frequency [Hz].
Definition Triggers.h:524
double GetTriggerFrequency(const Long64_t aTriggerIndex)
Returns the frequency of a given trigger [Hz].
Definition Triggers.h:228
double GetClusterizeDt(void)
Gets the clustering parameter.
Definition Triggers.h:109
double GetClusterMeanDuration(void)
Returns the mean duration of clusters [s].
Definition Triggers.h:476
Long64_t GetTriggerN(void)
Returns the current number of triggers in memory.
Definition Triggers.h:211
vector< double > Csnr
Cluster SNR.
Definition Triggers.h:540
double GetTriggerBandwidth(const Long64_t aTriggerIndex)
Returns the bandwidth of a given trigger [Hz].
Definition Triggers.h:328
double GetClusterFrequencyEnd(const unsigned int aClusterIndex)
Returns the end frequency of a given cluster [Hz].
Definition Triggers.h:406
vector< double > Cfend
Cluster frequency end.
Definition Triggers.h:539
double Tph
Trigger phase [rad].
Definition Triggers.h:527
vector< double > Cfstart
Cluster frequency start.
Definition Triggers.h:538
void SetClusterizeSizeMin(const unsigned int aSizeMin)
Sets the cluster minimal size: .
Definition Triggers.h:116
unsigned int clusterize_sizemin
Minimum cluster size .
Definition Triggers.h:556
bool AddTrigger(const double aTime, const double aFrequency, const double aSNR, const double aQ, const double aTstart, const double aTend, const double aFstart, const double aFend, const double aAmplitude, const double aPhase)
Adds a trigger to the Triggers object (only available in write-mode).
Definition Triggers.cc:82
double GetClusterPhase(const unsigned int aClusterIndex)
Returns the phase of a given cluster [rad].
Definition Triggers.h:424
vector< Long64_t > Cfirstentry
Cluster first trigger entry.
Definition Triggers.h:544
double GetClusterFrequencyStart(const unsigned int aClusterIndex)
Returns the start frequency of a given cluster [Hz].
Definition Triggers.h:397
bool GetStatus(void)
Returns the class status.
Definition Triggers.h:61
double GetClusterizeSnrThr(void)
Gets the SNR threshold for clustering.
Definition Triggers.h:135
double Tq
Trigger Q.
Definition Triggers.h:520
double GetClusterTotalDuration(void)
Returns the total duration of clusters [s].
Definition Triggers.h:486
int GetClusterTag(const unsigned int aClusterIndex)
Returns the tag of a given cluster.
Definition Triggers.h:460
double GetTriggerTimeEnd(const Long64_t aTriggerIndex)
Returns the end time of a given trigger [s].
Definition Triggers.h:268
void SetClusterTag(const unsigned int aClusterIndex, const int aTag)
Sets a new cluster tag value.
Definition Triggers.h:144
unsigned int GetClusterizeSizeMin(void)
Gets the cluster minimal size: .
Definition Triggers.h:122
Long64_t * Toffsets
Tree offsets in the chain (read-mode) - DO NOT DELETE.
Definition Triggers.h:529
void Reset(void)
Resets the Triggers object.
Definition Triggers.cc:62
Monitor * mon
Class monitor.
Definition Triggers.h:510