6 #include "TDocOutput.h"
14 #include "TRotation.h"
15 #include "TPolyLine.h"
17 #include "Math/Rotation3D.h"
18 #include "Math/Vector3Dfwd.h"
27 #define REPLACE(STRING,DIR,EXT) TString(STRING).ReplaceAll("/","").ReplaceAll(DIR,"").ReplaceAll("."+TString(EXT),"")
43 int bLag = LAG<0 ? 0 : LAG;
44 int eLag = LAG<0 ?
NET->
nLag : LAG+1;
46 factor = factor<=0 ? 1 :
fabs(factor);
63 std::vector<float>* vP;
87 for(
int lag=bLag; lag<eLag; lag++){
90 if(!p->
size())
continue;
92 if(
NET->
MRA) clusterID_net = p->
get((
char*)
"ID",0,
'S',0);
93 else clusterID_net = p->
get((
char*)
"ID",0,
'S',1);
94 K = clusterID_net.
size();
102 ID = size_t(clusterID_net.
data[k]+0.1);
103 if((iID)&&(ID!=iID))
continue;
110 {cout<<
"netevent::output(): incorrect search option"<<endl;
exit(1);}
139 int idSize = pd->
RWFID.size();
141 for (
int mm=0; mm<idSize; mm++)
if (pd->
RWFID[mm]==(
int)ID) wfIndex=mm;
143 for(j=0; j<
int(nIFO); j++) {
153 pwfINJ[
j] = INJ.
pwf[
j];
154 if (pwfINJ[j]==NULL) {
155 cout <<
"Error : Injected waveform not saved !!! : detector "
160 cout <<
"Error : Reconstructed waveform not saved !!! : ID -> "
161 << ID <<
" : detector " <<
NET->
ifoName[
j] << endl;
164 if (wfIndex>=0) pwfREC[
j] = pd->
RWFP[wfIndex];
173 double rescale = 1./pow(sqrt(2.),TMath::Log2(inRate/wfINJ->
rate()));
174 *wfINJ*=rescale; *wfREC*=rescale;
176 double bINJ = wfINJ->
start();
177 double eINJ = wfINJ->
start()+wfINJ->
size()/R;
178 double bREC = wfREC->
start();
179 double eREC = wfREC->
start()+wfREC->
size()/R;
184 int oINJ = bINJ>bREC ? 0 :
int((bREC-bINJ)*R+0.5);
185 int oREC = bINJ<bREC ? 0 :
int((bINJ-bREC)*R+0.5);
188 double startXCOR = bINJ>bREC ? bINJ : bREC;
189 double endXCOR = eINJ<eREC ? eINJ : eREC;
190 int sizeXCOR =
int((endXCOR-startXCOR)*R+0.5);
193 if (sizeXCOR<=0)
continue;
198 for (
int i=0;i<(
int)wfINJ->
size();i++) enINJ+=wfINJ->
data[i]*wfINJ->
data[i];
203 for (
int i=0;i<sizeXCOR;i++) enREC+=wfREC->
data[i+oREC]*wfREC->
data[i+oREC];
205 double xcorINJ_REC=0;
206 for (
int i=0;i<sizeXCOR;i++) xcorINJ_REC+=wfINJ->
data[i+oINJ]*wfREC->
data[i+oREC];
209 wfREC_SUB_INJ.
resize(sizeXCOR);
210 for (
int i=0;i<sizeXCOR;i++) wfREC_SUB_INJ.data[i]=wfREC->
data[i+oREC]-wfINJ->
data[i+oINJ];
211 wfREC_SUB_INJ.start(startXCOR);
212 wfREC_SUB_INJ.rate(wfREC->
rate());
223 bool batch = gROOT->IsBatch();
224 gROOT->SetBatch(
true);
227 double optRate = (p->
cRate[ID-1])[0];
228 double optLayer = p->
rate/optRate;
229 double optLevel =
int(log10(optLayer)/log10(2));
239 if(sbasedirCED!=NULL) wfINJ->wavearray<double>::Dump(
const_cast<char*>(fname),2);
244 if(sbasedirCED!=NULL) wfREC->wavearray<double>::Dump(
const_cast<char*>(fname),2);
256 PTS.
graph[0]->SetLineWidth(1);
257 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle);
258 if(bT<(startXCOR-
EVT->
gps[0])) bT=startXCOR-
EVT->
gps[0];
262 PTS.
graph[1]->SetLineWidth(2);
263 gmin = TMath::Min(PTS.
graph[0]->GetHistogram()->GetMinimum(),PTS.
graph[1]->GetHistogram()->GetMinimum());
264 gmax = TMath::Max(PTS.
graph[0]->GetHistogram()->GetMaximum(),PTS.
graph[1]->GetHistogram()->GetMaximum());
265 PTS.
graph[0]->GetYaxis()->SetRangeUser(0.9*gmin,1.1*gmax);
268 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
274 PTS.
canvas->SetLogy(
true);
282 PTS.
graph[0]->SetLineWidth(1);
286 PTS.
graph[1]->SetLineWidth(2);
287 gmin = TMath::Min(PTS.
graph[0]->GetHistogram()->GetMinimum(),PTS.
graph[1]->GetHistogram()->GetMinimum());
288 gmax = TMath::Max(PTS.
graph[0]->GetHistogram()->GetMaximum(),PTS.
graph[1]->GetHistogram()->GetMaximum());
289 PTS.
graph[0]->GetYaxis()->SetRangeUser(0.9*gmin,1.1*gmax);
292 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
294 PTS.
canvas->SetLogx(
false);
295 PTS.
canvas->SetLogy(
false);
298 wfREC_SUB_INJ.start(wfREC_SUB_INJ.start()-
EVT->
gps[0]);
302 PTS.
graph[0]->SetLineWidth(1);
303 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle);
306 PTS.
graph[1]->SetLineWidth(2);
307 gmin = TMath::Min(PTS.
graph[0]->GetHistogram()->GetMinimum(),PTS.
graph[1]->GetHistogram()->GetMinimum());
308 gmax = TMath::Max(PTS.
graph[0]->GetHistogram()->GetMaximum(),PTS.
graph[1]->GetHistogram()->GetMaximum());
309 PTS.
graph[0]->GetYaxis()->SetRangeUser(0.9*gmin,1.1*gmax);
310 wfREC_SUB_INJ.start(wfREC_SUB_INJ.start()+
EVT->
gps[0]);
312 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
318 PTS.
canvas->SetLogy(
true);
321 wfREC_SUB_INJ.start(wfREC_SUB_INJ.start()-
EVT->
gps[0]);
326 PTS.
graph[0]->SetLineWidth(1);
330 PTS.
graph[1]->SetLineWidth(2);
331 gmin = TMath::Min(PTS.
graph[0]->GetHistogram()->GetMinimum(),PTS.
graph[1]->GetHistogram()->GetMinimum());
332 gmax = TMath::Max(PTS.
graph[0]->GetHistogram()->GetMaximum(),PTS.
graph[1]->GetHistogram()->GetMaximum());
333 PTS.
graph[0]->GetYaxis()->SetRangeUser(0.9*gmin,1.1*gmax);
334 wfREC_SUB_INJ.start(wfREC_SUB_INJ.start()+
EVT->
gps[0]);
336 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
338 PTS.
canvas->SetLogx(
false);
339 PTS.
canvas->SetLogy(
false);
344 int xcor_length = sizeXCOR/wfINJ->
rate();
345 int wts_size = xcor_length<8 ? 16 : 16*
int(1+xcor_length/8.);
346 wts_size*=wfINJ->
rate();
360 for (
int m=0;m<sizeXCOR;m++)
361 if(m<(
int)xINJ.
size()/2) xINJ.
data[m+wts_size/2]=wfINJ->
data[m+oINJ];
365 double wts_start,wts_stop;
372 else wINJ.Forward(optLevel);
374 wts_stop = sizeXCOR<wts_size/2 ? wts_start+sizeXCOR/
wINJ.
rate() : wts_start+(wts_size/2)/
wINJ.
rate();
377 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
384 for (
int m=0;m<sizeXCOR;m++)
385 if(m<(
int)xREC.
size()/2) xREC.
data[m+wts_size/2]=wfREC->
data[m+oREC];
394 else wREC.Forward(optLevel);
395 wts_start =
wREC.start()+(double)(wts_size/2)/
wREC.rate();
396 wts_stop = sizeXCOR<wts_size/2 ? wts_start+sizeXCOR/
wREC.rate() : wts_start+(wts_size/2)/
wREC.rate();
399 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
406 for (
int m=0;m<sizeXCOR;m++)
407 if(m<(
int)xDIF.
size()/2) xDIF.
data[m+wts_size/2]=wfREC->
data[m+oREC]-wfINJ->
data[m+oINJ];
416 else wDIF.Forward(optLevel);
417 wts_start = wDIF.start()+(double)(wts_size/2)/wDIF.rate();
418 wts_stop = sizeXCOR<wts_size/2 ? wts_start+sizeXCOR/wDIF.rate() : wts_start+(wts_size/2)/wDIF.rate();
421 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
424 double t1 = wDIF.start();
425 double t2 = wDIF.start()+wDIF.size()/wDIF.rate();
427 int ni = 1<<wDIF.pWavelet->m_Level;
428 int nb =
int((t1-wDIF.start())*wDIF.rate()/ni);
429 int nj =
int((t2-t1)*wDIF.rate())/ni;
439 for(
int m=0;m<ni;m++) {
440 wINJ.getLayer(wlINJ,m);
441 wREC.getLayer(wlREC,m);
442 wDIF.getLayer(wlDIF,m);
443 for(
int k=nb;k<ne;k++) {
459 WTS.
canvas->SetLogy(
false);
460 gROOT->SetBatch(batch);
463 *wfINJ*=1./rescale; *wfREC*=1./rescale;
490 bool batch = gROOT->IsBatch();
491 gROOT->SetBatch(
true);
503 for(j=0; j<
int(vP->size()); j++) {
509 skyprob.
set(k,(*vP)[j]);
511 ra = skyprob.
getRA(i);
513 skyprobcc.
set(k,(*vP)[j]);
518 if(skyprobcc.
getType()&&(sbasedirCED!=NULL)) {
519 sprintf(fname,
"%s/skyprobcc.%s", dirCED,
"fits");
523 if(
NET->
like()==
'2') analysis=
"2G";
524 if(
NET->
MRA) analysis+=
":MRA";
529 char configur[64]=
"";
531 if (search==
'r')
sprintf(configur,
"%s un-modeled",analysis.Data());
533 if((search==
'i')||(search==
'I'))
sprintf(configur,
"%s elliptical",analysis.Data());
534 if((search==
's')||(search==
'S'))
sprintf(configur,
"%s linear",analysis.Data());
535 if((search==
'g')||(search==
'G'))
sprintf(configur,
"%s circular",analysis.Data());
537 if (search==
'i')
sprintf(configur,
"%s iota-wave",analysis.Data());
538 if (search==
'p')
sprintf(configur,
"%s psi-wave",analysis.Data());
539 if((search==
'l')||(search==
's'))
sprintf(configur,
"%s linear",analysis.Data());
540 if((search==
'c')||(search==
'g'))
sprintf(configur,
"%s circular",analysis.Data());
541 if((search==
'e')||(search==
'b'))
sprintf(configur,
"%s elliptical",analysis.Data());
553 double S = 4*pi*pow(180/pi,2);
556 for(
int l=0;
l<
L;
l++) {
557 double prob = gSM.
get(
l);
559 if(prob==0) gSM.
set(
l,1
e-40);
565 hsm->GetZaxis()->SetTitleOffset(0.85);
566 hsm->GetZaxis()->SetTitleSize(0.03);
567 sprintf(fname,
"%s/skyprobcc.%s", dirCED,
"png");
568 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
570 gROOT->SetBatch(batch);
584 cout <<
"CWB::ced::Write : No injected events found -> force simulation=0" << endl;
588 char home_ced_path[256]=
"~waveburst/WWW/LSC/waveburst/ced";
592 if(
NET->
like()==
'2') analysis=
"2G";
594 else analysis+=
":MRA";
603 bool batch = gROOT->IsBatch();
604 gROOT->SetBatch(
true);
612 int optRate,optLayer,optLevel;
614 TMarker inj; inj.SetMarkerStyle(29);
615 TMarker INJ; INJ.SetMarkerStyle(30);
616 TMarker rec; rec.SetMarkerStyle(29);
617 TMarker REC; REC.SetMarkerStyle(30);
618 TMarker det; det.SetMarkerStyle(20);
619 TMarker DET; DET.SetMarkerStyle(24);
624 char dirCED[1024]=
"";
631 double eventTime[
NIFO];
632 double lagTime[
NIFO];
633 double startSegTime,stopSegTime;
651 for(n=0; n<
nIFO; n++) {
656 TMath::Sort(nIFO,ifoid,sortid,
false);
659 if(sbasedirCED!=NULL) {
660 sprintf(command,
"mkdir -p %s",sbasedirCED);
661 if(gSystem->Exec(command))
return 0;
672 for(j=0; j<(
int)
id.
size(); j++) {
674 ID = size_t(
id.data[j]+0.5);
681 if(
EVT->
rho[analysis==
"1G"?1:0] <
rho)
continue;
684 int lagMin=2147483647;
690 if(sbasedirCED!=NULL) {
693 sprintf(dirCED,
"%s/%s", sbasedirCED, ifostr);
695 sprintf(command,
"mkdir -p %s",dirCED);
696 if(gSystem->Exec(command))
return 0;
698 if (getenv(
"HOME_CED_PATH")!=NULL) {
699 sprintf(home_ced_path,
"%s",getenv(
"HOME_CED_PATH"));
703 if(!
simulation)
sprintf(command,
"ln -s %s/index/cedindex_%s.html %s/index.html",home_ced_path,ifostr,dirCED);
704 else sprintf(command,
"ln -s %s/index/cedindex_sim_%s.html %s/index.html",home_ced_path,ifostr,dirCED);
705 if(gSystem->Exec(command))
return 0;
711 rbasedirCED->cd(); rbasedirCED->mkdir(dirCED)->cd();
718 if(
EVT->
rho[analysis==
"1G"?1:0] <
rho)
continue;
727 if(sbasedirCED!=NULL) {
728 sprintf(fname,
"%s/eventDump.txt", dirCED);
731 int rnID =
int(gRandom->Rndm(13)*1.e9);
732 UserGroup_t*
uinfo = gSystem->GetUserInfo();
734 gSystem->Exec(
TString(
"mkdir -p /dev/shm/")+uname);
735 sprintf(fname,
"/dev/shm/%s/eventDump-%d.txt",uname.Data(),
rnID);
742 Write(factor,ID,k,dirCED);
744 if(sbasedirCED==NULL) {
746 macro.Write(
"eventDump.txt");
747 gSystem->Exec(
TString(
"rm ")+fname);
752 for(n=0; n<
nIFO; n++) minTime = ((eventTime[n]-
EVT->
gps[n])<minTime) ? eventTime[
n]-
EVT->
gps[
n] : minTime;
753 for(n=0; n<
nIFO; n++) minTimeDet = ((eventTime[n]-
EVT->
gps[n])<=minTime) ? n : minTimeDet;
754 for(n=0; n<
nIFO; n++) lagTime[n]=eventTime[n]-
EVT->
gps[minTimeDet]-minTime;
755 startSegTime=
EVT->
gps[minTimeDet];
759 for(n=0; n<nIFO; n++) xtitle[
n] = TString::Format(
"Time (sec) : GPS OFFSET = %.3f",
EVT->
gps[n]);
762 if(sbasedirCED!=NULL)
sprintf(fname,
"%s/jobSummary.html", dirCED);
763 else sprintf(fname,
"/dev/null");
764 if((hP = fopen(fname,
"w")) != NULL) {
765 fprintf(hP,
"<table border=1 cellspacing=0 width=100%% height=100%%>\n");
766 fprintf(hP,
"<tr align=\"center\">\n");
768 fprintf(hP,
"<th>DETECTOR</th>\n");
770 fprintf(hP,
"<th>NETWORK</th>\n");
772 fprintf(hP,
"<td>%s</td>\n",ifostr);
774 fprintf(hP,
"<tr align=\"center\">\n");
776 fprintf(hP,
"<th>CHANNEL</th>\n");
779 fprintf(hP,
"<tr align=\"center\">\n");
780 fprintf(hP,
"<th>SEARCH</th>\n");
781 fprintf(hP,
"<td>%s</td>\n",analysis.Data());
783 fprintf(hP,
"<th>SEARCH</th>\n");
785 if(search==
'E' || search==
'E')
fprintf(hP,
"<td>%s un-modeled (%c)</td>\n",analysis.Data(),
search);
786 if(search==
'b' || search==
'B')
fprintf(hP,
"<td>%s un-modeled (%c)</td>\n",analysis.Data(),
search);
787 if(search==
'r' || search==
'R')
fprintf(hP,
"<td>%s un-modeled (%c)</td>\n",analysis.Data(),
search);
788 if(search==
'i' || search==
'I')
fprintf(hP,
"<td>%s elliptical (%c)</td>\n",analysis.Data(),
search);
789 if(search==
'g' || search==
'G')
fprintf(hP,
"<td>%s circular (%c)</td>\n",analysis.Data(),
search);
790 if(search==
's' || search==
'S')
fprintf(hP,
"<td>%s linear (%c)</td>\n",analysis.Data(),
search);
792 char _search = std::tolower(search);
793 if(_search==
'r')
fprintf(hP,
"<td>%s un-modeled(%c)</td>\n",analysis.Data(),
search);
794 if(_search==
'i')
fprintf(hP,
"<td>%s iota-wave(%c)</td>\n",analysis.Data(),
search);
795 if(_search==
'p')
fprintf(hP,
"<td>%s psi-wave(%c)</td>\n",analysis.Data(),
search);
796 if(_search==
'e'||_search==
'b')
fprintf(hP,
"<td>%s elliptical(%c)</td>\n",analysis.Data(),
search);
797 if(_search==
'c'||_search==
'g')
fprintf(hP,
"<td>%s circular(%c)</td>\n",analysis.Data(),
search);
798 if(_search==
'l'||_search==
's')
fprintf(hP,
"<td>%s linear(%c)</td>\n",analysis.Data(),
search);
802 fprintf(hP,
"<tr align=\"center\">\n");
803 fprintf(hP,
"<th>START SEGMENT</th>");
804 fprintf(hP,
"<td>%9.3f</td>\n",startSegTime);
806 fprintf(hP,
"<tr align=\"center\">\n");
807 fprintf(hP,
"<th>STOP SEGMENT</th>");
808 fprintf(hP,
"<td>%9.3f</td>\n",stopSegTime);
811 fprintf(hP,
"<tr align=\"center\">\n");
817 fprintf(hP,
"<tr align=\"center\">\n");
820 for(n=0; n<nIFO-1; n++)
fprintf(hP,
"%3.3f / ",lagTime[n]);
821 fprintf(hP,
"%3.3f",lagTime[nIFO-1]);
828 cout <<
"netevent::ced() error: cannot open file " << fname <<
". \n";
832 if(sbasedirCED!=NULL) {
834 html.SetEtcDir(gSystem->ExpandPathName(
"$HOME_WAT/html/etc/html"));
835 html.SetProductName(
"CED");
837 html.SetInputDir(html_input_dir.Data());
840 sprintf(cmd,
"cp %s/html/etc/html/ROOT.css %s/",gSystem->ExpandPathName(
"$HOME_WAT"),dirCED);
842 sprintf(cmd,
"cp %s/html/etc/html/ROOT.js %s/",gSystem->ExpandPathName(
"$HOME_WAT"),dirCED);
846 if(gSystem->Getenv(
"CWB_PARAMETERS_FILE")==NULL) {
847 cout <<
"Error : environment CWB_PARAMETERS_FILE is not defined!!!" << endl;
exit(1);
849 cwb_parameters_file=
TString(gSystem->Getenv(
"CWB_PARAMETERS_FILE"));
852 if(gSystem->Getenv(
"CWB_UPARAMETERS_FILE")==NULL) {
853 cout <<
"Error : environment CWB_UPARAMETERS_FILE is not defined!!!" << endl;
exit(1);
855 cwb_uparameters_file=
TString(gSystem->Getenv(
"CWB_UPARAMETERS_FILE"));
859 fpos_t poserr; fflush(stderr); fgetpos(stderr, &poserr);
860 int fderr = dup(fileno(stderr)); freopen(
"/dev/null",
"w", stderr);
862 fpos_t posout; fflush(stdout); fgetpos(stdout, &posout);
863 int fdout = dup(fileno(stdout)); freopen(
"/dev/null",
"w", stdout);
865 html.Convert(cwb_parameters_file.Data(),cwb_parameters_file.Data(),dirCED,
"");
866 if(analysis==
"1G")
sprintf(cmd,
"mv %s/cwb1G_parameters.C.html %s/cwb_parameters.C.html",dirCED,dirCED);
867 else sprintf(cmd,
"mv %s/cwb2G_parameters.C.html %s/cwb_parameters.C.html",dirCED,dirCED);
870 char work_dir[1024];
sprintf(work_dir,
"%s",gSystem->WorkingDirectory());
872 if(cwb_uparameters_file!=
"") {
873 html.Convert(cwb_uparameters_path.Data(),cwb_uparameters_file.Data(),dirCED,
"");
875 TString cwb_iparameters_path =
TString(dirCED)+
"/"+gSystem->BaseName(cwb_uparameters_path.Data())+
".html";
876 TString cwb_oparameters_path =
TString(dirCED)+
"/user_parameters.C.html";
877 gSystem->Rename(cwb_iparameters_path.Data(),cwb_oparameters_path.Data());
881 fflush(stderr); dup2(fderr, fileno(stderr));
close(fderr);
882 clearerr(stderr); fsetpos(stderr, &poserr);
884 fflush(stdout); dup2(fdout, fileno(stdout));
close(fdout);
885 clearerr(stdout); fsetpos(stdout, &posout);
889 if(sbasedirCED!=NULL)
sprintf(fname,
"%s/eventSummary.html", dirCED);
890 else sprintf(fname,
"/dev/null");
891 if((hP = fopen(fname,
"w")) != NULL) {
892 fprintf(hP,
"<table border=1 cellspacing=0 width=100%% height=100%%>\n");
893 fprintf(hP,
"<tr align=\"center\">\n");
894 fprintf(hP,
"<th>GPS TIME</th>\n");
897 fprintf(hP,
"<th>DURATION</th>\n");
898 fprintf(hP,
"<th>FREQUENCY</th>\n");
899 fprintf(hP,
"<th>BANDWIDTH</th>\n");
901 fprintf(hP,
"<th>RHO[0/1]</th>\n");
902 fprintf(hP,
"<th>CC[0/1/2/3]</th>\n");
905 fprintf(hP,
"<th>THETA</th>\n");
908 fprintf(hP,
"<tr align=\"center\">\n");
918 fprintf(hP,
"<td>%1.2f / %1.2f / %1.2f / %1.2f</td>\n",
928 cout <<
"netevent::ced() error: cannot open file " << fname <<
". \n";
933 std::vector<TGraph*> mgraph(nIFO);
934 Color_t psd_color[8] = {kBlue, kRed, kGreen, kBlack, 6, 3, 8, 43};
935 for(n=0; n<
nIFO; n++) {
937 if(pD[n]->nRMS.size()==0)
continue;
947 if(fHigh>rate/2.) fHigh=rate/2.;
951 double* map00 = wdm->
pWWS;
952 double dF = rate/M/2./2.;
962 double etime = eventTime[
n]-
EVT->
gps[
n];
964 double segLen = stopSegTime-startSegTime;
965 int I = (
int)etime/(segLen/nPSD);
967 for(
int i=0; i<nPSD; ++
i){
968 if(i==I) psd[0] = map00[0];
969 PSD[0]+= pow(map00[0],2);
970 for(
int j=1; j<
M; j++){
971 if(i==I) psd[2*j-1] = map00[
j];
972 if(i==I) psd[2*
j] = map00[
j];
973 PSD[2*j-1]+= pow(map00[j],2);
974 PSD[2*
j] += pow(map00[j],2);
976 if(i==I) psd[2*M-1] = map00[
M];
977 PSD[2*M-1]+= pow(map00[M],2);
981 psd*=sqrt(2.)/sqrt(inRate);
982 for(
int j=0; j<PSD.
size(); j++) PSD[j] = sqrt(PSD[j]/nPSD)*sqrt(2.)/sqrt(inRate);
985 gStyle->SetTitleFont(12,
"D");
989 PTS.
graph[0]->SetTitle(TString::Format(
"Power Spectral Density after lines' removal @ Time (sec) = %.0f",
EVT->
time[minTimeDet]));
990 PTS.
graph[0]->GetXaxis()->SetTitle(
"Frequency (Hz) ");
991 PTS.
graph[0]->GetYaxis()->SetTitle(
"[strain / #sqrt{Hz}] ");
992 PTS.
graph[0]->SetMarkerStyle(1);
993 PTS.
graph[0]->SetMinimum(1.
e-24);
994 PTS.
graph[0]->SetMaximum(1.
e-20);
995 PTS.
graph[0]->SetLineWidth(2);
996 PTS.
graph[0]->SetLineColor(psd_color[n%8]);
1003 PTS.
canvas->SetLogx(
true);
1004 PTS.
canvas->SetLogy(
true);
1006 TLegend
leg(0.753012,0.8-0.01,0.8885542,0.8793706,NULL,
"brNDC");
1007 leg.SetTextAlign(22);
1008 leg.SetLineColor(kBlack);
1009 leg.AddEntry(PTS.
graph[0],TString::Format(
"%s",
NET->
ifoName[n]),
"lp");
1012 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1013 mgraph[
n] = PTS.
graph[0];
1020 if(nIFO_RMS==nIFO) {
1022 PTS.
graph[0]->Draw(
"ALP");
for(n=1; n<
nIFO; n++) PTS.
graph[n]->Draw(
"SAME");
1024 TLegend
leg(0.753012,0.8-nIFO*0.01,0.8885542,0.8793706,NULL,
"brNDC");
1025 leg.SetTextAlign(22);
1026 leg.SetLineColor(kBlack);
1027 for(
int n=0;n<
nIFO;n++) leg.AddEntry(PTS.
graph[n],TString::Format(
"%s",
NET->
ifoName[n]),
"lp");
1029 sprintf(fname,
"%s/NET_psd.%s", dirCED, gtype);
1030 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1032 PTS.
canvas->SetLogx(
false);
1033 PTS.
canvas->SetLogy(
false);
1040 optLevel =
int(log10(optLayer)/log10(2));
1042 for(
int n=0; n<
nIFO; n++) {
1044 if(useSparse&&(analysis!=
"1G")) {
1046 pD[
n]->
vSS[optSparse].Expand(
true);
1052 double rescale = 1./pow(sqrt(2.),TMath::Log2(inRate/pTF[n]->
rate()));
1057 for(
int n=0; n<
nIFO; n++) {
1058 if(pTF[n]->
size()==0)
continue;
1059 if(pTF[n]->getLevel()>0) pTF[
n]->
Inverse();
1064 double fparm=nfact*6;
1071 int ysize=ystop-ystart;
1083 stft.
Draw(tstart,tstop,pTF[n]->getlow(),pTF[n]->gethigh(),0,0,1);
1087 if(sbasedirCED!=NULL) stft.
Print(fname);
else canvas->Write(
REPLACE(fname,dirCED,gtype));
1088 canvas->SetLogy(
true);
1091 if(sbasedirCED!=NULL) stft.
Print(fname);
else canvas->Write(
REPLACE(fname,dirCED,gtype));
1093 tstart+=0.9;tstop-=0.9;
1094 stft.
Draw(tstart,tstop,pTF[n]->getlow(),pTF[n]->gethigh(),0,0,1);
1098 if(sbasedirCED!=NULL) stft.
Print(fname);
else canvas->Write(
REPLACE(fname,dirCED,gtype));
1099 canvas->SetLogy(
true);
1102 if(sbasedirCED!=NULL) stft.
Print(fname);
else canvas->Write(
REPLACE(fname,dirCED,gtype));
1108 for(
int n=0; n<
nIFO; n++) {
1111 if(useSparse&&(analysis!=
"1G")) {
1116 if(pTF[n]->
size()==0)
continue;
1127 for(
int n=0; n<
nIFO; n++) {
1128 if(pTF[n]->
size()==0)
continue;
1132 WTS.
hist2D->GetYaxis()->SetRangeUser(pTF[n]->getlow(),pTF[n]->gethigh());
1133 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[n]);
1134 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1139 for(
int n=0; n<
nIFO; n++) {
1140 if(pTF[n]->
size()==0)
continue;
1143 WTS.
hist2D->GetYaxis()->SetRangeUser(pTF[n]->getlow(),pTF[n]->gethigh());
1144 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[n]);
1146 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1153 for(
int n=0; n<
nIFO; n++) {
1154 if(useSparse&&(analysis!=
"1G")) {
1156 pD[
n]->
vSS[optSparse].Shrink();
1160 double rescale = 1./pow(sqrt(2.),TMath::Log2(inRate/pTF[n]->
rate()));
1161 *pTF[
n]*=1./rescale;
1175 double rescale = 1./pow(sqrt(2.),TMath::Log2(inRate/pD[0]->waveForm.
rate()));
1176 for(
int n=0; n<
nIFO; n++) {
1188 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1189 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1201 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1207 for(
int n=0; n<
nIFO; n++) {
1211 double wstart = pD[
n]->
waveForm.wavearray<double>::start();
1220 for(
int n=0; n<
nIFO; n++) pD[n]->waveBand.sethigh(0);
1224 for(
int n=0; n<
nIFO; n++) {
1234 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1235 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1241 for(
int n=0; n<
nIFO; n++) pD[n]->waveBand.sethigh(0);
1244 for(
int n=0; n<
nIFO; n++) {
1249 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1250 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1256 PTS.
graph[0]->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1257 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1264 if(sbasedirCED!=NULL) PTS.
canvas->Print(fname);
else PTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1270 for(
int n=0; n<
nIFO; n++) {
1272 double wstart = pD[
n]->
waveForm.wavearray<double>::start();
1275 pD[
n]->
waveForm.wavearray<double>::start(wstart);
1279 if(nIFO==1 || !fullCED) {
1286 if(analysis.Contains(
"2G")) {
1288 gStyle->SetLineColor(kBlack);
1291 sprintf(fname,
"%s/polargram_%d.%s", dirCED, m+1, gtype);
1292 if(sbasedirCED!=NULL) CPol->Print(fname);
else CPol->Write(
REPLACE(fname,dirCED,gtype));
1294 gStyle->SetLineColor(kWhite);
1307 inj.SetMarkerSize(2.5); inj.SetMarkerColor(kWhite);
1308 INJ.SetMarkerSize(2.5); INJ.SetMarkerColor(kBlack);
1309 rec.SetMarkerSize(2.5); rec.SetMarkerColor(kBlack);
1310 REC.SetMarkerSize(2.5); REC.SetMarkerColor(kWhite);
1311 det.SetMarkerSize(1.5); det.SetMarkerColor(kBlack);
1312 DET.SetMarkerSize(1.5); DET.SetMarkerColor(kWhite);
1315 sprintf(fname,
"%s/sensitivity_plus.%s", dirCED, gtype);
1316 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1317 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1319 sprintf(fname,
"%s/sensitivity_cross.%s", dirCED, gtype);
1320 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1321 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1323 sprintf(fname,
"%s/skystat.%s", dirCED, gtype);
1324 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1325 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1327 sprintf(fname,
"%s/likelihood.%s", dirCED, gtype);
1328 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1329 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1331 sprintf(fname,
"%s/null_energy.%s", dirCED, gtype);
1332 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1333 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1335 sprintf(fname,
"%s/corr_energy.%s", dirCED, gtype);
1336 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1337 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1339 sprintf(fname,
"%s/penalty.%s", dirCED, gtype);
1340 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1341 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1343 sprintf(fname,
"%s/disbalance.%s", dirCED, gtype);
1344 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1345 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1347 sprintf(fname,
"%s/correlation.%s", dirCED, gtype);
1348 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1349 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1352 sprintf(fname,
"%s/netindex.%s", dirCED, gtype);
1353 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1354 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1357 sprintf(fname,
"%s/ellipticity.%s", dirCED, gtype);
1358 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1359 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1361 sprintf(fname,
"%s/polarisation.%s", dirCED, gtype);
1362 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1363 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1366 sprintf(fname,
"%s/probability.%s", dirCED, gtype);
1367 gSM.
Draw(); rec.Draw();REC.Draw(); det.Draw();DET.Draw();
if(
simulation) {inj.Draw();INJ.Draw();}
1368 if(sbasedirCED!=NULL) gSM.
Print(fname);
else gSM.Write(
REPLACE(fname,dirCED,gtype));
1374 sprintf(fname,
"%s/probability.%s", dirCED,
"root");
1375 if(sbasedirCED!=NULL) {
1384 if(sbasedirCED!=NULL) {
1385 sprintf(fname,
"%s/probability.%s", dirCED,
"fits");
1393 sprintf(fname,
"%s/probability_circles.%s", dirCED, gtype);
1398 gNET.
DrawCircles(phi,theta,(Color_t)kBlack,1,1,
true);
1399 rec.Draw(); det.Draw();
1413 sprintf(fname,
"%s/mchirp.%s", dirCED, gtype);
1415 if(sbasedirCED!=NULL) PCH.
canvas->Print(fname);
1423 bool isPCs = !(
NET->
optim&&std::isupper(search));
1426 sprintf(fname,
"%s/l_tfmap_scalogram.%s", dirCED, gtype);
1428 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1429 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
1432 sprintf(fname,
"%s/n_tfmap_scalogram.%s", dirCED, gtype);
1434 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1435 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
1441 sprintf(fname,
"%s/l_tfmap_scalogram.%s", dirCED, gtype);
1445 WTS.
hist2D->SetTitle(
"Scalogram");
1446 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1447 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1451 sprintf(fname,
"%s/n_tfmap_scalogram.%s", dirCED, gtype);
1455 WTS.
hist2D->SetTitle(
"Scalogram");
1456 WTS.
hist2D->GetXaxis()->SetTitle(xtitle[minTimeDet]);
1457 if(sbasedirCED!=NULL) WTS.
canvas->Print(fname);
else WTS.
canvas->Write(
REPLACE(fname,dirCED,gtype));
1471 gROOT->SetBatch(batch);
1486 for(
int i=0;
i<
N;
i++) {avr+=
i*x[
i]*x[
i]; E+=x[
i]*x[
i];}
1493 double sum = ((M>=0)&&(M<N)) ? x[M]*x[M] : 0.;
1494 for(
int j=1;
j<
N;
j++) {
1495 a = ((M-
j>=0)&&(M-j<N)) ? x[M-j] : 0.;
1496 b = ((M+j>=0)&&(M+j<N)) ? x[M+j] : 0.;
1500 if(sum/E > P)
break;
std::vector< char * > ifoName
TCanvas * DrawPolargram(int ptype, network *net=NULL)
detector * getifo(size_t n)
param: detector index
virtual void resize(unsigned int)
virtual size_t size() const
Double_t * time
beam pattern coefficients for hx
std::vector< vector_int > cRate
Float_t * rho
biased null statistics
Float_t * high
min frequency
WSeries< double > pixeLHood
std::vector< wavearray< double > > wREC[MAX_TRIALS]
std::vector< netcluster > wc_List
Double_t * start
cluster duration = stopW-startW
std::vector< double > * getmdcTime()
fprintf(stdout,"start=%f duration=%f rate=%f\n", x.start(), x.size()/x.rate(), x.rate())
virtual void rate(double r)
Float_t * duration
max cluster time relative to segment start
Float_t * low
average center_of_snr frequency
void Print(TString pname)
bool getwave(size_t, size_t, char='W')
param: cluster ID param: delay index param: time series type return: true if time series are extracte...
void DrawCircles(double phi, double theta, double gps, Color_t lcolor=kBlack, Width_t lwidth=1, Style_t lstyle=1, bool labels=false)
wavearray< double > a(hp.size())
void SetGskymap(gskymap &gSM)
cout<< "skymap size : "<< L<< endl;for(int l=0;l< L;l++) sm.set(l, l);sm > const_cast< char * >("skymap.dat")
void set(size_t i, double a)
double GetBoundaries(wavearray< double > x, double P, double &bT, double &eT)
Float_t * right
segment start GPS time
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
wavearray< double > get(char *name, size_t index=0, char atype='R', int type=1, bool=true)
param: string with parameter name param: index in the amplitude array, which define detector param: c...
std::vector< wavearray< double > * > RWFP
WDM< double > wdm(nLAYERS, nLAYERS, 6, 10)
wavearray< double > psd(33)
string getmdcType(size_t n)
std::vector< TGraph * > graph
Float_t * left
min cluster time relative to segment start
std::vector< SSeries< double > > vSS[NIFO_MAX]
double getTheta(size_t i)
Float_t * ioSNR
reconstructed snr waveform
WSeries< double > waveBand
virtual void start(double s)
std::vector< size_t > mdc__ID
bool getMRAwave(size_t ID, size_t lag, char atype='S', int mode=0, bool tof=false)
void plot(wavearray< double > &, char *=NULL, int=1, double=0., double=0., bool=false, float=0., float=0., bool=false, float=0., bool=false)
void Draw(int dpaletteId=0, Option_t *option="colfz")
void dopen(const char *fname, char *mode, bool header=true)
void Draw(double t1=0.0, double t2=0.0, double f1=0.0, double f2=0.0, double z1=0.0, double z2=0.0, int dpaletteId=DUMMY_PALETTE_ID, Option_t *option="colfz")
Int_t run
max size used by allocate() for the probability maps
WDM< double > * getwdm(size_t M)
param: number of wdm layers
size_t getSkyIndex(double th, double ph)
param: theta param: phi
Float_t * frequency
GPS stop time of the cluster.
wavecomplex antenna(double, double, double=0.)
param: source theta,phi, polarization angle psi in degrees
void output2G(TTree *, network *, size_t, int, double)
Double_t * hrss
estimated bandwidth
Double_t * gps
average center_of_gravity time
Double_t * stop
GPS start time of the cluster.
WSeries< double > pTF[nRES]
Float_t * lag
time between consecutive events
int Write(double factor, bool fullCED=true)
Float_t * netcc
effective correlated SNR
Float_t * slag
time lag [sec]
void output(TTree *=NULL, network *=NULL, double=0., size_t=0, int=-1)
long likelihood(char='E', double=sqrt(2.), int=0, size_t=0, int=-1, bool=false)
Float_t * phi
sqrt(h+*h+ + hx*hx)
WSeries< double > pixeLNull
netevent EVT(itree, nifo)
Float_t * theta
[0]-reconstructed, [1]-injected phi angle, [2]-RA
Double_t * time
beam pattern coefficients for hx
WSeries< double > waveForm
WSeries< double > * getTFmap()
param: no parameters
double fabs(const Complex &x)
void Forward(int n=-1)
param: wavelet - n is number of steps (-1 means full decomposition)
void CwbToGeographic(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
strcpy(RunLabel, RUN_LABEL)
void DumpObject(const char *file, const char *name="gskymap")
Meyer< double > S(1024, 2)
netcluster * getwc(size_t n)
param: delay index
Float_t * bx
beam pattern coefficients for hp
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
skymap nSensitivity
list of wdm tranformations
std::vector< clusterdata > cData
void set(size_t i, double a)
param: sky index param: value to set
double get(size_t i)
param: sky index
WaveDWT< DataType_t > * pWavelet
wavearray< double > wINJ[NIFO_MAX]
#define REPLACE(STRING, DIR, EXT)
cout<< "live time after cat 2 : "<< detSegs_ctime<< endl;if(detSegs_ctime< segTHR){cout<< "job segment live time after cat2 < "<< segTHR<< " sec, job terminated !!!"<< endl;exit(1);}double Tb=detSegs[0].start;double Te=detSegs[0].stop;double dT=Te-Tb;char file[512], tdf00[512], tdf90[512], buFFer[1024];int rnID=int(gRandom->Rndm(13)*1.e9);if(simulation){i=NET.readMDClog(injectionList, double(long(Tb))-mdcShift);printf("GPS: %16.6f saved, injections: %d\n", double(long(Tb)), i);frTB[nIFO].shiftBurstMDCLog(NET.mdcList, ifos, mdcShift);for(int i=0;i< NET.mdcTime.size();i++) NET.mdcTime[i]+=mdcShift;vector< waveSegment > mdcSegs(NET.mdcTime.size());for(int k=0;k< NET.mdcTime.size();k++){mdcSegs[k].start=NET.mdcTime[k]-gap;mdcSegs[k].stop=NET.mdcTime[k]+gap;}vector< waveSegment > mdcSegs_dq2=slagTB.mergeSegLists(detSegs_dq2, mdcSegs);double mdcSegs_ctime=slagTB.getTimeSegList(mdcSegs_dq2);cout<< "live time in zero lag after cat2+inj : "<< mdcSegs_ctime<< endl;if(mdcSegs_ctime==0){cout<< "job segment with zero cat2+inj live time in zero lag, job terminated !!!"<< endl;exit(1);}}if(dump_infos_and_exit) exit(0);if(mask >0.) NET.setSkyMask(mask, skyMaskFile);for(i=0;i< nIFO;i++){frTB[i].readFrames(FRF[i], channelNamesRaw[i], x);x.start(x.start()+dataShift[i]);x.start(x.start()-segLen *(segID[i]-segID[0]));if(singleDetector) TB.resampleToPowerOfTwo(x);sprintf(file,"%s/%s_%d_%s_%d_%d.dat", nodedir, ifo[i], int(Tb), data_label, runID, rnID);if(dump_sensitivity_and_exit){sprintf(file,"%s/sensitivity_%s_%d_%s_job%d.txt", dump_dir, ifo[i], int(Tb), data_label, runID);cout<< endl<< "Dump Sensitivity : "<< file<< endl<< endl;TB.makeSpectrum(file, x);continue;}if(dcCal[i]>0.) x *=dcCal[i];if(fResample >0){x.FFT(1);x.resize(fResample/x.rate()*x.size());x.FFT(-1);x.rate(fResample);}pTF[i]=pD[i]-> getTFmap()
Bool_t fill_in(network *, int, bool=true)
Float_t * neted
network correlation coefficients: 0-net,1-pc,2-cc,3-net2
std::vector< SSeries< double > > vSS
size_t getmdc__ID(size_t n)
for(int i=0;i< 101;++i) Cos2[2][i]=0
wavearray< double > ** pwf
[x1,y1,z1,x2,y2,z2] components of spin vector
virtual void resize(unsigned int)
void Print(TString pname)
void Inverse(int n=-1)
param: n - number of steps (-1 means full reconstruction)
bool setndm(size_t, size_t, bool=true, int=1)
param: cluster ID param: lag index param: statistic identificator param: resolution idenificator retu...
void SetOptions(TString projection="hammer", TString coordinate="Geographic", double resolution=1, bool goff=false)
bool SETNDM(size_t, size_t, bool=true, int=1)
Float_t * chirp
range to source: [0/1]-rec/inj
Float_t * Deff
injected snr in the detectors
void SetZaxisTitle(TString zAxisTitle)
Float_t * bp
[0]-reconstructed iota angle, [1]-injected iota angle
Float_t * iSNR
energy of reconstructed responses Sk*Sk
Float_t * bandwidth
max frequency
Float_t * oSNR
injected snr waveform