3 #pragma GCC system_header
10 #include "TObjArray.h"
11 #include "TObjString.h"
17 #define WAVEFORM_NAME "Waveforms/SG554Q8d9.txt"
24 cout <<
"-----> plugins/CWB_Plugin_SimMDC_SimData.C" << endl;
25 cout <<
"ifo " << ifo.Data() << endl;
26 cout <<
"type " << type << endl;
40 if(ifo.CompareTo(
"L1")==0) seed=1000;
41 if(ifo.CompareTo(
"H1")==0) seed=2000;
42 if(ifo.CompareTo(
"V1")==0) seed=3000;
43 if(ifo.CompareTo(
"J1")==0) seed=4000;
44 if(ifo.CompareTo(
"A2")==0) seed=5000;
47 if(ifo.CompareTo(
"L1")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
48 if(ifo.CompareTo(
"H1")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
49 if(ifo.CompareTo(
"V1")==0) fName=
"plugins/strains/advVIRGO_sensitivity_12May09_8khz_one_side.txt";
50 if(ifo.CompareTo(
"J1")==0) fName=
"plugins/strains/LCGT_sensitivity_8khz_one_side.txt";
51 if(ifo.CompareTo(
"A2")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
73 double burstMDC_theta = 7.799320e-01;
74 double burstMDC_phi = 7.720941e-01;
75 double burstMDC_psi = 3.397006;
86 theta = acos(burstMDC_theta);
88 phi = burstMDC_phi > 0 ? burstMDC_phi : 2*Pi+burstMDC_phi;
91 psi = burstMDC_psi*180/
Pi;
93 cout <<
"theta : " << theta <<
" phi : " << phi <<
" psi " << psi << endl;
101 cout << ifos[
i].Data() <<
" " << ifos[
j].Data() <<
" -> "
102 <<
gNET.
GetDelay(ifos[
i].Data(),ifos[
j].Data(),phi,theta) <<
" sec " << endl;
107 char logString[1024]=
"";
110 double SimHrss = 1.213000e-21;
111 double SimEgwR2 = 1.011301e-47;
112 double GravEn_Ampl = 1.213000e-21;
113 double Internal_x = 1.0;
114 double Internal_phi = 0.0;
115 double External_x = burstMDC_theta;
116 double External_phi = burstMDC_phi;
117 double External_psi = burstMDC_psi;
119 double FrameGPS = x->
start();
121 double EarthCtrGPS = 968654066.616913;
122 char SimName[64] =
"SG554Q8d9";
123 double SimHpHp = 1.471369e-42;
127 sprintf(logString,
"%s",GravEn_SimID);
128 sprintf(logString,
"%s %e",logString,SimHrss);
129 sprintf(logString,
"%s %e",logString,SimEgwR2);
130 sprintf(logString,
"%s %e",logString,GravEn_Ampl);
131 sprintf(logString,
"%s %e",logString,Internal_x);
132 sprintf(logString,
"%s %e",logString,Internal_phi);
133 sprintf(logString,
"%s %e",logString,External_x);
134 sprintf(logString,
"%s %e",logString,External_phi);
135 sprintf(logString,
"%s %e",logString,External_psi);
137 sprintf(logString,
"%s %10.6f",logString,FrameGPS);
138 sprintf(logString,
"%s %10.6f",logString,EarthCtrGPS);
139 sprintf(logString,
"%s %s",logString,SimName);
140 sprintf(logString,
"%s %e",logString,SimHpHp);
141 sprintf(logString,
"%s %e",logString,SimHcHc);
142 sprintf(logString,
"%s %e",logString,SimHpHc);
148 double IFOctrGPS = EarthCtrGPS;
149 if(
i>0) IFOctrGPS +=
gNET.
GetDelay(ifos[
i].Data(),ifos[0].Data(),phi,theta);
152 if(ifos[i].CompareTo(ifo)==0) {
153 tShift=IFOctrGPS-EarthCtrGPS;
157 sprintf(logString,
"%s %s %10.6f %e %e",logString,ifos[i].Data(),IFOctrGPS,IFOfPlus,IFOfCross);
160 if(ifo.CompareTo(net->
ifoName[0])==0) {
161 cout << logString << endl;
163 net->
mdcList.push_back(logString);
165 net->
mdcType.push_back(SimName);
167 net->
mdcTime.push_back(EarthCtrGPS);
185 if (!in.good()) {cout <<
"Error Opening File : " <<
WAVEFORM_NAME << endl;gSystem->Exit(1);}
189 int offset = (EarthCtrGPS-FrameGPS)*x->
rate();
194 hrss+=pow(x->
data[offset+size],2);
195 if (!in.good())
break;
197 if ((offset+size)>=(
int)x->
size())
break;
204 if(tShift==0)
return;
211 cout <<
"tShift : " << tShift << endl;
212 for (
int ii=0;ii<(
int)x->
size()/2;ii++) {
213 TComplex X(x->
data[2*ii],x->
data[2*ii+1]);
214 X=X*C.Exp(TComplex(0.,-2*Pi*ii*df*tShift));
215 x->
data[2*ii]=X.Re();
216 x->
data[2*ii+1]=X.Im();
std::vector< char * > ifoName
virtual void resize(unsigned int)
virtual size_t size() const
virtual void rate(double r)
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
void CWB_Plugin(TFile *jfile, CWB::config *cfg, network *net, WSeries< double > *x, TString ifo, int type)
COHERENCE.
virtual void start(double s)
std::vector< double > mdcTime
network ** net
NOISE_MDC_SIMULATION.
std::vector< std::string > mdcList
double GetDelay(TString ifo1, TString ifo2, double phi, double theta)
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
double GetAntennaPattern(double phi, double theta, double psi=0., int polarization=1)