Omicron  4.2.0
An algorithm to detect and characterize transient events in gravitational-wave detectors
Oinject.h
Go to the documentation of this file.
1 
6 #ifndef __Oinject__
7 #define __Oinject__
8 #include <Spectrum.h>
9 #include <TRandom3.h>
10 #include <TMath.h>
11 
12 #define sqrt2pi 2.5066282746310002416123552393401042
13 
14 using namespace std;
15 
20 class Oinject{
21 
22  public:
23 
41  Oinject(const double aDuration);
42 
46  virtual ~Oinject(void);
56  void MakeWaveform(void);
57 
72  inline double GetWaveform(const unsigned int aIndex, const unsigned int aSamplingFrequency){
73  return
74  amp* // signal amplitude
75  Wg/sigma_t/sqrt2pi*exp(-(-duration/2.0+(double)aIndex/(double)aSamplingFrequency-tau)*(-duration/2.0+(double)aIndex/(double)aSamplingFrequency-tau)/2.0/sigma_t/sigma_t)* // Gaussian window
76  TMath::Cos(2.0*TMath::Pi()*phi*(-duration/2.0+(double)aIndex/(double)aSamplingFrequency)+phase);// sine
77  };
78 
85  double GetTrueSNR(Spectrum *aSpec1, Spectrum *aSpec2);
86 
92  inline void SetTimeRange(const double aTimeMin, const double aTimeMax){
93  taumin=aTimeMin; taumax=aTimeMax;
94  };
95 
101  inline void SetFrequencyRange(const double aFreqMin, const double aFreqMax){
102  phimin=aFreqMin; phimax=aFreqMax;
103  };
104 
110  inline void SetAmplitudeRange(const double aAmpMin, const double aAmpMax){
111  ampmin=aAmpMin; ampmax=aAmpMax;
112  };
113 
119  inline void SetQRange(const double aQMin, const double aQMax){
120  Qmin=aQMin; Qmax=aQMax;
121  };
122 
126  inline double GetTime(void){ return tau; };
127 
131  inline double GetTimeMin(void){ return taumin; };
132 
136  inline double GetTimeMax(void){ return taumax; };
137 
141  inline double GetFrequency(void){ return phi; };
142 
146  inline double GetFrequencyMin(void){ return phimin; };
147 
151  inline double GetFrequencyMax(void){ return phimax; };
152 
156  inline double GetQ(void){ return Q; };
157 
161  inline double GetQMin(void){ return Qmin; };
162 
166  inline double GetQMax(void){ return Qmax; };
167 
171  inline double GetAmplitude(void){ return amp; };
172 
176  inline double GetAmplitudeMin(void){ return ampmin; };
177 
181  inline double GetAmplitudeMax(void){ return ampmax; };
182 
186  inline double GetPhase(void){ return phase; };
187 
191  inline double GetSigmat(void){ return sigma_t; };
192 
196  inline double GetSigmaf(void){ return sigma_f; };
197 
198  private:
199 
200  double duration;
201  TRandom3 *randgen;
202 
203  double Wg;
204  double sigma_t;
205  double sigma_f;
206 
207  double tau;
208  double taumin;
209  double taumax;
210  double phi;
211  double phimin;
212  double phimax;
213  double Q;
214  double Qmin;
215  double Qmax;
216  double amp;
217  double ampmin;
218  double ampmax;
219  double snr;
220  double phase;
221 
231  void GenerateParameters(void);
232 
233 
234  ClassDef(Oinject,0)
235 };
236 
237 
238 #endif
239 
240 
#define sqrt2pi
Definition: Oinject.h:12
const double aQMax
Definition: Otile.cc:11
Inject sinusoidal Gaussian waveforms.
Definition: Oinject.h:20
void SetQRange(const double aQMin, const double aQMax)
Sets a new range for : - .
Definition: Oinject.h:119
double GetQMax(void)
Returns the maximum Q .
Definition: Oinject.h:166
double GetSigmat(void)
Returns the injection duration .
Definition: Oinject.h:191
double GetFrequencyMin(void)
Returns the minimum frequency [Hz].
Definition: Oinject.h:146
double taumax
Maximum injection time.
Definition: Oinject.h:209
void SetAmplitudeRange(const double aAmpMin, const double aAmpMax)
Sets a new range for : - .
Definition: Oinject.h:110
Oinject(const double aDuration)
Constructor of the Oinject class.
double snr
Injection SNR .
Definition: Oinject.h:219
double GetPhase(void)
Returns the injection phase .
Definition: Oinject.h:186
double amp
Injection amplitude .
Definition: Oinject.h:216
double GetQMin(void)
Returns the minimum Q .
Definition: Oinject.h:161
double Wg
Gaussian window normalization.
Definition: Oinject.h:203
double GetFrequency(void)
Returns the injection frequency [Hz].
Definition: Oinject.h:141
double taumin
Minimum injection time.
Definition: Oinject.h:208
double ampmax
Maximum injection amplitude.
Definition: Oinject.h:218
void SetTimeRange(const double aTimeMin, const double aTimeMax)
Sets a new range for : - .
Definition: Oinject.h:92
double sigma_f
Gaussian window width (frequency).
Definition: Oinject.h:205
double GetFrequencyMax(void)
Returns the maximum frequency [Hz].
Definition: Oinject.h:151
void SetFrequencyRange(const double aFreqMin, const double aFreqMax)
Sets a new range for : - .
Definition: Oinject.h:101
double phimax
Maximum injection frequency.
Definition: Oinject.h:212
double GetTime(void)
Returns the injection time [s].
Definition: Oinject.h:126
double GetSigmaf(void)
Returns the injection bandwidth .
Definition: Oinject.h:196
double GetAmplitude(void)
Returns the injection amplitude .
Definition: Oinject.h:171
double GetAmplitudeMin(void)
Returns the minimum amplitude .
Definition: Oinject.h:176
double GetAmplitudeMax(void)
Returns the maximum amplitude .
Definition: Oinject.h:181
double phase
Injection phase .
Definition: Oinject.h:220
double GetTimeMin(void)
Returns the minimum time [s].
Definition: Oinject.h:131
double duration
Vector duration [s].
Definition: Oinject.h:196
double sigma_t
Gaussian window width (time).
Definition: Oinject.h:204
double GetQ(void)
Returns the injection Q .
Definition: Oinject.h:156
double GetTimeMax(void)
Returns the maximum time [s].
Definition: Oinject.h:136
double ampmin
Minimum injection amplitude.
Definition: Oinject.h:217
double tau
Injection time .
Definition: Oinject.h:207
double phi
Injection frequency .
Definition: Oinject.h:210
double GetWaveform(const unsigned int aIndex, const unsigned int aSamplingFrequency)
Returns the waveform amplitude for a given time index .
Definition: Oinject.h:72
double Qmax
Maximum injection Q.
Definition: Oinject.h:215
double phimin
Minimum injection frequency.
Definition: Oinject.h:211
double Qmin
Minimum injection Q.
Definition: Oinject.h:214
TRandom3 * randgen
Random generator.
Definition: Oinject.h:201
double Q
Injection Q .
Definition: Oinject.h:213