Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CWB_Plugin_HEN_SIM.C
Go to the documentation of this file.
1 #define XIFO 4
2 
3 #pragma GCC system_header
4 
5 #include "cwb.hh"
6 #include "config.hh"
7 #include "network.hh"
8 #include "wavearray.hh"
9 #include "TString.h"
10 #include "TObjArray.h"
11 #include "TObjString.h"
12 #include "TRandom.h"
13 #include "TComplex.h"
14 #include "TMath.h"
15 #include "mdc.hh"
16 #include <vector>
17 
18 
19 void
21 //!NOISE_MDC_SIMULATION
22 // Plugin to injected 'on the fly' MDC & to set SkyMaskCC 'on the fly'
23 
24 
25  if(type==CWB_PLUGIN_CONFIG) {
26  cfg->mdcPlugin=true; // disable read mdc from frames
27  }
28 
29  if(type==CWB_PLUGIN_MDC) {
30 
31  // ---------------------------------
32  // Declare mdc class
33  // On The Fly MDC Injections
34  // ---------------------------------
35 
36  CWB::mdc MDC(net);
37 
38  // ---------------------------------
39  // read plugin config
40  // CWB_Plugin_HEN_SIM_Config.C
41  // ---------------------------------
42 
43  char cmd[128];
44  sprintf(cmd,"network* net = (network*)%p;",net);
45  gROOT->ProcessLine(cmd);
46  sprintf(cmd,"CWB::config* cfg = (CWB::config*)%p;",cfg);
47  gROOT->ProcessLine(cmd);
48  sprintf(cmd,"int xstart = %d;",(int)x->start());
49  gROOT->ProcessLine(cmd);
50  sprintf(cmd,"int xstop = %d;",(int)x->stop());
51  gROOT->ProcessLine(cmd);
52  int error=0;
53  cfg->configPlugin.Exec(NULL,&error);
54  if(error) {
55  cout << "Error executing macro : " << cfg->configPlugin.GetTitle() << endl;
56  cfg->configPlugin.Print();
57  gSystem->Exit(1);
58  }
59  IMPORT(CWB::mdc,MDC)
60  MDC.Print();
61 
62  // ---------------------------------
63  // get mdc data
64  // fill x array with MDC injections
65  // ---------------------------------
66 
67  MDC.Get(*x,ifo);
68 
69  // ---------------------------------
70  // set mdc list in the network class
71  // ---------------------------------
72 
73  if(ifo.CompareTo(net->ifoName[0])==0) {
74  net->mdcList.clear();
75  net->mdcType.clear();
76  net->mdcTime.clear();
77  net->mdcList=MDC.mdcList;
78  net->mdcType=MDC.mdcType;
79  net->mdcTime=MDC.mdcTime;
80  }
81 
82  // ---------------------------------
83  // write MDC log file
84  // ---------------------------------
85 
86  char logFile[512];
87  int runID = net->nRun;
88  int Tb=x->start()+cfg->segEdge;
89  int dT=x->size()/x->rate()-2*cfg->segEdge;
90  sprintf(logFile,"%s/log_%d_%d_%s_job%d.txt",cfg->output_dir,int(Tb),int(dT),cfg->data_label,runID);
91  cout << "Dump : " << logFile << endl;
92  if(ifo==cfg->ifo[0]) MDC.DumpLog(logFile);
93 
94  // ---------------------------------
95  // print MDC injections list
96  // ---------------------------------
97 
98  cout.precision(14);
99  for(int k=0;k<(int)net->mdcList.size();k++) cout << k << " mdcList " << MDC.mdcList[k] << endl;
100  for(int k=0;k<(int)net->mdcTime.size();k++) cout << k << " mdcTime " << MDC.mdcTime[k] << endl;
101  for(int k=0;k<(int)net->mdcType.size();k++) cout << k << " mdcType " << MDC.mdcType[k] << endl;
102  }
103 
104  return;
105 }
std::vector< char * > ifoName
Definition: network.hh:591
CWB::config * cfg
Definition: TestCWB_Plugin.C:5
virtual size_t size() const
Definition: wavearray.hh:127
TMacro configPlugin
Definition: config.hh:344
char cmd[1024]
TString Get(wavearray< double > &x, TString ifo)
Definition: mdc.cc:1502
bool mdcPlugin
Definition: config.hh:347
std::vector< std::string > mdcList
Definition: mdc.hh:357
virtual void rate(double r)
Definition: wavearray.hh:123
char logFile[1024]
Definition: cwb_merge_log.C:13
TString("c")
std::vector< std::string > mdcType
Definition: mdc.hh:358
size_t nRun
Definition: network.hh:554
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
std::vector< std::string > mdcType
Definition: network.hh:595
CWB::mdc * MDC
virtual void start(double s)
Definition: wavearray.hh:119
std::vector< double > mdcTime
Definition: network.hh:596
void CWB_Plugin(TFile *jfile, CWB::config *cfg, network *net, WSeries< double > *x, TString ifo, int type)
COHERENCE.
void Print(int level=0)
Definition: mdc.cc:2707
char ifo[NIFO_MAX][8]
network ** net
NOISE_MDC_SIMULATION.
double segEdge
Definition: config.hh:146
jfile
Definition: cwb_job_obj.C:25
Definition: mdc.hh:216
#define IMPORT(TYPE, VAR)
Definition: cwb.hh:51
i() int(T_cor *100))
char output_dir[1024]
Definition: config.hh:300
std::vector< std::string > mdcList
Definition: network.hh:594
int k
double Tb
virtual void stop(double s)
Definition: wavearray.hh:121
char ifo[NIFO_MAX][8]
Definition: config.hh:106
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
void DumpLog(TString fName, TString label="", bool append=false)
Definition: mdc.cc:5039
double dT
Definition: testWDM_5.C:12
std::vector< double > mdcTime
Definition: mdc.hh:360
char data_label[1024]
Definition: config.hh:314