Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MakeBurstXML.C
Go to the documentation of this file.
1 
2 #define GPS_START_TIME 1116917000
3 #define GPS_END_TIME 1116918000
4 
5 #define TMP_BUF_LENGTH 100 // temporary buffer length in sec used for MDC generation
6 
7 #define XML_FILE_NAME "burst.xml"
8 #define LOG_FILE_NAME "burst.txt" // create BurstMDC log file
9 
10 void MakeBurstXML() {
11  //
12  // Show how to use mdc class to create a LAL Burst XML
13  // Author : Gabriele Vedovato
14 
15  // MDC class
16  #define N_IFO 3
17  TString ifo[N_IFO]={"L1","H1","V1"};
18  CWB::mdc MDC(N_IFO,ifo);
19 
20  // add SGE waveforms
21  // uniform distribution in frequency [40:1000] Hz
22  // uniform distribution in Q [3:30] Hz
23  vector<mdcpar> par(3);
24 
25  double value;
26  int NWAVE = 100;
27  float minfreq = 40.;
28  float maxfreq = 1500.;
29  float minq = 3;
30  float maxq = 30.;
31  int seed = 12345;
32 
33  gRandom->SetSeed(seed);
34  for(int n=0;n<NWAVE;n++) {
35  value = gRandom->Uniform(minfreq,maxfreq);
36  par[0].name="frequency"; par[0].value=value;
37  value = gRandom->Uniform(minq,maxq);
38  par[1].name="Q"; par[1].value=value;
39  par[2].name="decimals"; par[2].value=3;
40  MDC.AddWaveform(MDC_SGE, par);
41  }
42  MDC.Print();
43 
44  // --------------------------------------------------------
45  // define injection parameters
46  // --------------------------------------------------------
47 
48  MDC.SetInjHrss(2.5e-21); // injection hrss (the factors array in user_parameter.C file is used to rescale it)
49  MDC.SetInjRate(0.1); // injection rate (injections per sec)
50  MDC.SetInjJitter(1.0); // time jitter in sec
51 
52  // ---------------------------------------------------------------------------------------
53  // define sky distribution
54  // this example show how to set a random sky distribution
55  // for a full description of the parameters see the CWB::mdc::SetSkyDistribution in mdc.cc
56  // ---------------------------------------------------------------------------------------
57 
58  par.resize(4);
59  par[0].name="entries"; par[0].value=100000; // number of entries randomly generated
60  par[1].name="rho_min"; par[1].value=0; // the source hrss is not rescaled
61  par[2].name="rho_max"; par[2].value=0; // the source hrss is not rescaled
62  par[3].name="iota"; par[3].value=-1; // iota : random distribution, iota < 0: random distribution
63  MDC.SetSkyDistribution(MDC_RANDOM,par,seed); // random sky distribution (theta,phi,psi)
64 
65  par.resize(10);
66  par[0].name="gps-start-time"; par[0].value=GPS_START_TIME;
67  par[1].name="gps-end-time"; par[1].value=GPS_END_TIME;
68  par[2].name="f-distr"; par[2].svalue="uniform";
69  par[3].name="min-frequency"; par[3].value=minfreq;
70  par[4].name="max-frequency"; par[4].value=maxfreq;
71  par[5].name="q-distr"; par[5].svalue="uniform";
72  par[6].name="min-q"; par[6].value=minq;
73  par[7].name="max-q"; par[7].value=maxq;
74  par[8].name="seed"; par[8].value=seed;
75  par[9].name="population"; par[9].svalue="all_sky_sinegaussian";
76  MDC.CreateBurstXML(XML_FILE_NAME,par);
77 #ifdef LOG_FILE_NAME
78  MDC.DumpLogHeader(LOG_FILE_NAME,"",1);
79 #endif
81  x.rate(MDC.GetSampleRate());
82  bool verbose = true;
83  double start=GPS_START_TIME;
84  int loops = TMath::CeilNint((GPS_END_TIME-GPS_START_TIME)/TMP_BUF_LENGTH);
85  for(int i=0;i<loops;i++) {
86  if(i%10==0) cout << "loop : " << i << endl;
87  start += x.size()/x.rate();
88  x.start(start);
89  MDC.GetBurst(x,"H1");
90  MDC.FillBurstXML(verbose);
91 #ifdef LOG_FILE_NAME
92  MDC.DumpLog(LOG_FILE_NAME,"",true);
93 #endif
94  }
95  MDC.CloseBurstXML();
96 
97  gSystem->Exit(0);
98 }
par[0] value
#define N_IFO
void SetInjRate(double inj_rate=MDC_INJ_RATE)
Definition: mdc.hh:279
int n
Definition: cwb_net.C:10
TString("c")
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\t layers : "<< nLAYERS<< "\t dF(hz) : "<< dF<< "\t dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1)*itime+ifreq;double time=itime *dT;double freq=(ifreq >0)?ifreq *dF:dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
CWB::mdc * MDC
i drho i
#define LOG_FILE_NAME
Definition: MakeBurstXML.C:8
mdcid AddWaveform(MDC_TYPE mdc_type, vector< mdcpar > par, TString uname="")
Definition: mdc.cc:445
void Print(int level=0)
Definition: mdc.cc:2707
char ifo[NIFO_MAX][8]
double GetSampleRate()
Definition: mdc.hh:291
void SetSkyDistribution(MDC_DISTRIBUTION sky_distribution, vector< mdcpar > par, int seed=0, bool add=false)
Definition: mdc.cc:3415
Definition: mdc.hh:216
void DumpLogHeader(TString fName, TString label="", int size=0)
Definition: mdc.cc:4538
TString GetBurst(wavearray< double > &x, TString ifo)
Definition: mdc.cc:1529
Definition: mdc.hh:122
void SetInjJitter(double inj_jitter=MDC_INJ_JITTER)
Definition: mdc.hh:285
vector< mdcpar > par
double e
#define GPS_END_TIME
Definition: MakeBurstXML.C:3
#define GPS_START_TIME
Definition: MakeBurstXML.C:2
void MakeBurstXML()
Definition: MakeBurstXML.C:10
#define TMP_BUF_LENGTH
Definition: MakeBurstXML.C:5
void DumpLog(TString fName, TString label="", bool append=false)
Definition: mdc.cc:5039
void SetInjHrss(double inj_hrss=MDC_INJ_HRSS)
Definition: mdc.hh:275
#define XML_FILE_NAME
Definition: MakeBurstXML.C:7