21 #pragma GCC system_header 28 #include "TObjArray.h" 29 #include "TObjString.h" 35 #define WAVEFORM_NAME "Waveforms/SG554Q8d9.txt" 42 cout <<
"-----> plugins/CWB_Plugin_SimMDC_SimData.C" << endl;
43 cout <<
"ifo " << ifo.Data() << endl;
44 cout <<
"type " << type << endl;
58 if(ifo.CompareTo(
"L1")==0) seed=1000;
59 if(ifo.CompareTo(
"H1")==0) seed=2000;
60 if(ifo.CompareTo(
"V1")==0) seed=3000;
61 if(ifo.CompareTo(
"J1")==0) seed=4000;
62 if(ifo.CompareTo(
"A2")==0) seed=5000;
65 if(ifo.CompareTo(
"L1")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
66 if(ifo.CompareTo(
"H1")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
67 if(ifo.CompareTo(
"V1")==0) fName=
"plugins/strains/advVIRGO_sensitivity_12May09_8khz_one_side.txt";
68 if(ifo.CompareTo(
"J1")==0) fName=
"plugins/strains/LCGT_sensitivity_8khz_one_side.txt";
69 if(ifo.CompareTo(
"A2")==0) fName=
"plugins/strains/advLIGO_NSNS_Opt_8khz_one_side.txt";
91 double burstMDC_theta = 7.799320e-01;
92 double burstMDC_phi = 7.720941e-01;
93 double burstMDC_psi = 3.397006;
104 theta = acos(burstMDC_theta);
106 phi = burstMDC_phi > 0 ? burstMDC_phi : 2*Pi+burstMDC_phi;
109 psi = burstMDC_psi*180/
Pi;
111 cout <<
"theta : " << theta <<
" phi : " << phi <<
" psi " << psi << endl;
119 cout << ifos[
i].Data() <<
" " << ifos[
j].Data() <<
" -> " 120 <<
gNET.
GetDelay(ifos[
i].Data(),ifos[
j].Data(),phi,theta) <<
" sec " << endl;
125 char logString[1024]=
"";
128 double SimHrss = 1.213000e-21;
129 double SimEgwR2 = 1.011301e-47;
130 double GravEn_Ampl = 1.213000e-21;
131 double Internal_x = 1.0;
132 double Internal_phi = 0.0;
133 double External_x = burstMDC_theta;
134 double External_phi = burstMDC_phi;
135 double External_psi = burstMDC_psi;
137 double FrameGPS = x->
start();
139 double EarthCtrGPS = 968654066.616913;
140 char SimName[64] =
"SG554Q8d9";
141 double SimHpHp = 1.471369e-42;
145 sprintf(logString,
"%s",GravEn_SimID);
146 sprintf(logString,
"%s %e",logString,SimHrss);
147 sprintf(logString,
"%s %e",logString,SimEgwR2);
148 sprintf(logString,
"%s %e",logString,GravEn_Ampl);
149 sprintf(logString,
"%s %e",logString,Internal_x);
150 sprintf(logString,
"%s %e",logString,Internal_phi);
151 sprintf(logString,
"%s %e",logString,External_x);
152 sprintf(logString,
"%s %e",logString,External_phi);
153 sprintf(logString,
"%s %e",logString,External_psi);
155 sprintf(logString,
"%s %10.6f",logString,FrameGPS);
156 sprintf(logString,
"%s %10.6f",logString,EarthCtrGPS);
157 sprintf(logString,
"%s %s",logString,SimName);
158 sprintf(logString,
"%s %e",logString,SimHpHp);
159 sprintf(logString,
"%s %e",logString,SimHcHc);
160 sprintf(logString,
"%s %e",logString,SimHpHc);
166 double IFOctrGPS = EarthCtrGPS;
167 if(
i>0) IFOctrGPS +=
gNET.
GetDelay(ifos[
i].Data(),ifos[0].Data(),phi,theta);
170 if(ifos[i].CompareTo(ifo)==0) {
171 tShift=IFOctrGPS-EarthCtrGPS;
175 sprintf(logString,
"%s %s %10.6f %e %e",logString,ifos[i].Data(),IFOctrGPS,IFOfPlus,IFOfCross);
178 if(ifo.CompareTo(net->
ifoName[0])==0) {
179 cout << logString << endl;
181 net->
mdcList.push_back(logString);
183 net->
mdcType.push_back(SimName);
185 net->
mdcTime.push_back(EarthCtrGPS);
203 if (!in.good()) {cout <<
"Error Opening File : " <<
WAVEFORM_NAME << endl;gSystem->Exit(1);}
207 int offset = (EarthCtrGPS-FrameGPS)*x->
rate();
212 hrss+=pow(x->
data[offset+size],2);
213 if (!in.good())
break;
215 if ((offset+size)>=(
int)x->
size())
break;
222 if(tShift==0)
return;
229 cout <<
"tShift : " << tShift << endl;
230 for (
int ii=0;ii<(
int)x->
size()/2;ii++) {
231 TComplex X(x->
data[2*ii],x->
data[2*ii+1]);
232 X=X*C.Exp(TComplex(0.,-2*Pi*ii*df*tShift));
233 x->
data[2*ii]=X.Re();
234 x->
data[2*ii+1]=X.Im();
std::vector< char * > ifoName
virtual void resize(unsigned int)
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<< "\ layers : "<< nLAYERS<< "\ dF(hz) : "<< dF<< "\ 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.
virtual size_t size() const
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)