25 #define FAR_FILE_NAME "rate_threshold_veto.txt" 26 #define LIV_FILE_NAME "live.txt" 43 #define DENSITY_FORMULA 145 TB.
checkFile(gSystem->Getenv(
"CWB_ROOTLOGON_FILE"));
146 TB.
checkFile(gSystem->Getenv(
"CWB_PARAMETERS_FILE"));
147 TB.
checkFile(gSystem->Getenv(
"CWB_UPARAMETERS_FILE"));
148 TB.
checkFile(gSystem->Getenv(
"CWB_PPARAMETERS_FILE"));
149 TB.
checkFile(gSystem->Getenv(
"CWB_UPPARAMETERS_FILE"));
150 TB.
checkFile(gSystem->Getenv(
"CWB_EPPARAMETERS_FILE"));
166 cout<<endl<<
"cwb_mkfad.C : Warning : pp_fad is not defined, macro is not executed !!!"<<endl<<endl;
173 cout<<
"cwb_mkfad.C : Error : pp_fad --bkgrep not defined"<<endl;
exit(1);}
180 cout<<
"cwb_mkfad.C : Info : pp_fad --hrss not defined : set hrss=1"<<endl;}
193 cout<<
"cwb_mkfad.C : Error : pp_fad --rhomin must be a number"<<endl;
202 cout<<
"cwb_mkfad.C : Error : pp_fad --gfit bad value -> must be true/false"<<endl;
215 cout<<
"cwb_mkfad.C : Error : pp_fad --units bad value -> must be K/M"<<endl;
224 cout<<
"cwb_mkfad.C : Error : pp_fad --distr bad value -> must be MDC/FORMULA"<<endl;
233 if((_pp_fad_nzbins[0]==
'+')||(_pp_fad_nzbins[0]==
'-')) _pp_fad_nzbins.Remove(0,1);
234 if(_pp_fad_nzbins.IsDigit()) {
237 cout<<
"cwb_mkfad.C : Error : pp_fad --nzbins must be an integer number"<<endl;
248 cout<<
"cwb_mkfad.C : Error : pp_fad --nbins must be an integer number"<<endl;
255 if(pp_fad_header==
"") pp_fad_header=
"false";
256 pp_fad_header.ToUpper();
260 if(pp_fad_multi==
"") pp_fad_multi=
"false";
261 pp_fad_multi.ToUpper();
265 pp_fad_title.ReplaceAll(
"*",
" ");
266 if(pp_fad_title==
"") pp_fad_title=
"FAD";
270 pp_fad_subtitle.ReplaceAll(
"*",
" ");
275 gCANVAS =
new TCanvas(
"canvas",
"canvas",16,30,825,546);
276 gCANVAS->Range(-19.4801,-9.25,-17.4775,83.25);
282 gStyle->SetOptFit(kTRUE);
296 sprintf(cmd,
"network* net = new network;");
297 gROOT->ProcessLine(cmd);
300 sprintf(cmd,
"CWB::config* cfg = (CWB::config*)%p;",cfg);
301 gROOT->ProcessLine(cmd);
302 sprintf(cmd,
"int gIFACTOR=1;");
303 gROOT->ProcessLine(cmd);
308 gINSPIRAL = gMDC->GetInspiral()!=
"" ? true :
false;
312 TGlobal*
global = (TGlobal*)gROOT->GetGlobal(
"mdcHRSS",
true);
314 cout << global->GetTypeName() << endl;
315 if(
TString(global->GetTypeName())!=
"vector<double>") {
316 cout <<
"cwb_mkfad.C - Error : 'vector<double> mdcHRSS' do not exist in CINT" << endl;
327 gTRWAVE = (TTree*) gROOT->FindObject(
"waveburst");
330 gTRMDC = (TTree*) gROOT->FindObject(
"mdc");
335 char liv_file_path[1024];
342 cout <<
"Zero Lag Observation Time : " <<
gOBSTIME <<
" sec" << endl;
344 cout <<
"cwb_mkfad.C - Error : Observation Time is zero" << endl;
345 cout <<
" probably your set do not includes the zero lag" << endl << endl;
348 cout <<
"Background Observation Time : " <<
gBKGTIME <<
" sec" << endl;
354 char far_file_path[1024];
358 infar.open(far_file_path,
ios::in);
359 if (!infar.good()) {cout <<
"Error Opening File : " << far_file_path << endl;
exit(1);}
362 infar >> irho >> ifar;
363 if (!infar.good())
break;
369 dFAR.push_back(ifar);
374 RHO.push_back(RHO[RHO.size()-1]+drho);
380 eRHO.resize(RHO.size());
384 for(
int i=0;
i<RHO.size()-1;
i++) {
388 for(
int i=0;
i<RHO.size()-1;
i++) {
403 ifstream in_hrss_norm;
408 in_hrss_norm >> hrss_temp;
409 if (!in_hrss_norm.good())
break;
414 cout <<
"cwb_mkfad.C - Errors : too many waveforms on " <<
pp_fad_hrss <<
" file " << endl;
418 in_hrss_norm.close();
444 if(bexit) gSystem->Exit(0);
else return;
460 ptitle=
TString(
"Effective Radius vs ")+rho_type;
461 gStyle->SetStatY(0.3);
465 }
else if(
gPTYPE==
"REFFvsIRHO") {
468 ptitle=
TString(
"Effective Radius vs inverse ")+rho_type;
469 xtitle=
TString(rho_type)+
"^{-1}";
472 }
else if(
gPTYPE==
"VISvsRHO") {
475 ptitle=
TString(
"Visible Volume vs ")+rho_type;
477 ytitle=
"Vvis (Kpc^{3})";
479 }
else if(
gPTYPE==
"PRODvsFAD") {
482 ptitle=
TString(
"Productivity vs False Alarm Density");
483 xtitle=
"FAD (Kpc^{-3} Kyr^{-1})";
484 ytitle=
"Productivity (Kpc^{3} Kyr)";
486 }
else if(
gPTYPE==
"FADvsRHO") {
489 ptitle=
TString(
"False Alarm Density vs ")+rho_type;
491 ytitle=
"FAD (Kpc^{-3} Kyr^{-1})";
493 }
else if(
gPTYPE==
"FARvsRHO") {
496 ptitle=
TString(
"False Alarm Rate vs ")+rho_type;
498 ytitle=
"False Alarm Rate (sec^{-1})";
500 }
else if(
gPTYPE==
"FAPvsRHO") {
503 ptitle=
TString(
"False Alarm Probability vs ")+rho_type;
505 ytitle=
"False Alarm Probability";
507 }
else if(
gPTYPE==
"EVTvsRHO") {
510 ptitle=
TString(
"Expected background events per Observation time vs ")+rho_type;
512 ytitle=
"Expected Events";
514 }
else if(
gPTYPE==
"OBSTIMEvsFAR") {
517 ptitle=
TString(
"Observation Time vs False Alarm Rate");
518 xtitle=
"FAR (sec^{-1})";
519 ytitle=
"Observation Time (sec)";
521 }
else if(
gPTYPE==
"RECvsINJ") {
524 ptitle=
"Reconstructed events vs Injected events";
525 gStyle->SetOptStat(0);
526 xtitle =
"distance (Kpc)";
535 if(pAll)
for(
int i=0;
i<=
N;
i++)
RECvsINJ(
i, ptitle, xtitle, ytitle);
536 else RECvsINJ(0, ptitle, xtitle, ytitle);
541 Plot(0, ptitle, xtitle, ytitle);
545 if(pAll)
for(
int i=0;
i<=
N;
i++)
Plot(
i, ptitle, xtitle, ytitle);
546 else Plot(0, ptitle, xtitle, ytitle);
548 for(
int i=1;
i<=
N;
i++)
Plot(
i, ptitle, xtitle, ytitle);
573 double min_dist =
gTRMDC->GetMinimum(
"distance");
574 double max_dist =
gTRMDC->GetMaximum(
"distance");
579 if(enorm>enorm_max) enorm_max=enorm;
581 min_dist *= enorm_max;
582 max_dist *= enorm_max;
585 TH1F* hdist =
new TH1F(
"hdist",
"hdist",
gNBINS,1000*min_dist,1000*max_dist);
587 TTreeFormula mcut(
"mcut", cut,
gTRMDC);
588 gTRMDC->SetBranchStatus(
"*",
false);
589 gTRMDC->SetBranchStatus(
"distance",
true);
590 gTRMDC->SetBranchStatus(
"type",
true);
593 gTRMDC->SetBranchAddress(
"distance",&distance);
594 gTRMDC->SetBranchAddress(
"type",&type);
595 int msize =
gTRMDC->GetEntries();
597 for(
int i=0;
i<msize;
i++) {
599 if(mcut.EvalInstance()==0)
continue;
607 hdist->Fill(distance);
610 cout <<
"nmdc : " << nmdc << endl;
611 gTRMDC->SetBranchStatus(
"*",
true);
633 int entries = gMDC->
GetPar(
"entries",sky_parms,error);
634 double min_dist = gMDC->
GetPar(
"rho_min",sky_parms,error);
635 if(error) min_dist=0.;
636 double dist_max = gMDC->
GetPar(
"rho_max",sky_parms,error);
637 if(error) dist_max=0.;
639 bool formula = ((sky_dist_formula!=
"")&&(dist_max>0)) ?
true :
false;
645 cout <<
"sky_dist_formula : " << sky_dist_formula << endl;
646 cout <<
"min_dist : " << min_dist <<
" dist_max : " << dist_max << endl;
651 TF1 *fdist =
new TF1(
"fdist",sky_dist_formula,min_dist,dist_max);
652 double norm=fdist->Integral(min_dist,dist_max);
654 cout << norm << endl;
657 char vdens_expression[256];
658 sprintf(vdens_expression,
"(4*TMath::Pi()*x*x)/(%f*(%s))",norm,sky_dist_formula.Data());
659 cout <<
"vdens_expression : " << vdens_expression << endl;
660 vdens =
new TF1(
"vdens",vdens_expression,min_dist,dist_max);
667 for(
int i=1;
i<=hdist->GetNbinsX();
i++) {
668 double value = hdist->GetBinContent(
i);
669 value /= hdist->GetBinWidth(
i);
670 hdist->SetBinContent(
i,value);
675 cout <<
"cwb_mkfad.C - Error : hdist is NULL" << endl;
687 for(
int n=nRHO-1;
n>=0;
n--) {
692 sprintf(sel,
"range[1]:type[1]");
694 sprintf(cut,
"abs(time[0]-time[%d])<%f && netcc[%d]>%f && rho[%d]>%f && rho[%d]<=%f",
697 sprintf(cut,
"type[1]==%d && abs(time[0]-time[%d])<%f && netcc[%d]>%f && rho[%d]>%f && rho[%d]<=%f",
705 double* range =
gTRWAVE->GetV1();
706 double* itype =
gTRWAVE->GetV2();
711 double dist=1000*range[
i];
721 ivdens = vdens->Eval(dist);
726 eVIS[
n]+=pow(ivdens,2);
738 if(hdist)
delete hdist;
752 ptitle.ReplaceAll(
"Kpc",
"Mpc");
753 xtitle.ReplaceAll(
"Kpc",
"Mpc");
754 ytitle.ReplaceAll(
"Kpc",
"Mpc");
755 ptitle.ReplaceAll(
"Kyr",
"Myr");
756 xtitle.ReplaceAll(
"Kyr",
"Myr");
757 ytitle.ReplaceAll(
"Kyr",
"Myr");
779 double Kyr = 86400.*365.*1000.;
780 double Myr = 86400.*365.*1000000.;
793 mFAD=0;mFAD[0]=FAD[0];meFAD[0]=eFAD[0];
795 if(FAD[
n]<mFAD[
n-1]) {mFAD[
n]=FAD[
n];meFAD[
n]=eFAD[
n];}
796 else {mFAD[
n]=mFAD[
n-1];meFAD[
n]=meFAD[
n-1];}
798 for(
int n=0;
n<
nRHO;
n++) {FAD[
n]=mFAD[
n];eFAD[
n]=meFAD[
n];}
804 for(
int n=nRHO-1;
n>0;
n--) FAD[
n-1]+=FAD[
n];
824 mFAD=0;mFAD[nRHO-1]=FAD[nRHO-1];
825 for(
int n=nRHO-2;
n>=0;
n--) {
826 if(FAD[
n]>mFAD[
n+1]) mFAD[
n]=FAD[
n];
else mFAD[
n]=mFAD[
n+1];
833 for(
int n=0;
n<
nRHO;
n++) {FAD[
n]*=Xyr;eFAD[
n]*=Xyr;}
838 if(
gPTYPE==
"FADvsRHO") { y[
n]=FAD[
n]; ey[
n]=eFAD[
n]; }
840 x[
n]=FAD[
n]; ex[
n]=eFAD[
n];
842 if(
n && (FAD[
n]==FAD[
n-1])) {
843 y[
n]=y[
n-1]; ey[
n]=ey[
n-1];
850 if(
n && (FAD[
n]==FAD[
n-1])) {
851 y[
n]=y[
n-1]; ey[
n]=ey[
n-1];
858 if(
n && (FAD[
n]==FAD[
n-1])) {
859 y[
n]=y[
n-1]; ey[
n]=ey[
n-1];
869 if(
gPTYPE==
"OBSTIMEvsFAR") {
896 if(
gPTYPE==
"REFFvsIRHO") {
914 sprintf(title,
"%s : %s", ptitle.Data(),
"ALL");
917 sprintf(title,
"%s : %s : Strain @ 10Kpc = %g",
918 ptitle.Data(),gMDC->
wfList[mtype-1].name.Data(),
normHRSS[mtype-1]);
921 ptitle.Data(),gMDC->
wfList[mtype-1].name.Data());
926 cout <<
"MakeFAD.C : Error - mtype=0 non allowed when data are not normalized" << endl;
929 sprintf(title,
"%s : %s : Strain @ 10Kpc = %g",
930 ptitle.Data(),gMDC->
wfList[mtype-1].name.Data(),
mdcHRSS[mtype-1]);
933 if(
gPTYPE==
"EVTvsRHO")
sprintf(title,
"%s : %s", ptitle.Data(),
"ALL");
935 TGraphErrors*
gr =
new TGraphErrors;
937 gr->SetPoint(cnt,x[0],y[0]);
938 gr->SetPointError(cnt++,0,0);
940 double dx = (x[
i]-x[
i-1])/10000.;
941 gr->SetPoint(cnt,x[
i],y[i-1]);
943 gr->SetPointError(cnt++,ex[i],ey[i-1]);
944 gr->SetPoint(cnt,x[i]+dx,y[i]);
946 gr->SetPointError(cnt++,ex[i],ey[i]);
948 gr->GetHistogram()->GetXaxis()->SetTitle(xtitle.Data());
949 gr->GetHistogram()->GetYaxis()->SetTitle(ytitle.Data());
950 gr->GetHistogram()->GetXaxis()->SetTitleOffset(1.4);
951 gr->GetHistogram()->GetYaxis()->SetTitleOffset(1.4);
954 double xmax=0;
double xmin=1e80;
955 double ymax=0;
double ymin=1e80;
956 for(
int i=0;
i<
nRHO;
i++) {
if(x[
i]>xmax) xmax=x[
i];
if(x[
i]<xmin && x[
i]!=0) xmin=x[
i];}
957 for(
int i=0;
i<
nRHO;
i++) {
if(y[
i]>ymax) ymax=y[
i];
if(y[
i]<ymin && y[
i]!=0) ymin=y[
i];}
958 if(xmax/xmin<10)
gCANVAS->SetLogx(
false);
959 if(ymax/ymin<10)
gCANVAS->SetLogy(
false);
960 gr->GetHistogram()->GetXaxis()->SetRangeUser(xmin,xmax);
961 gr->GetHistogram()->GetYaxis()->SetRangeUser(0.95*ymin,1.05*ymax);
964 gr->SetLineColor(kRed);
967 gr->SetFillStyle(3003);
973 if(
gPTYPE==
"VISvsRHO") gfit =
new TF1(
"gfit",
"[0]+[1]/pow(x,3)",x[0],x[nRHO-1]);
974 if(
gPTYPE==
"REFFvsRHO") gfit =
new TF1(
"gfit",
"[0]/x",x[0],x[nRHO-1]);
975 if(
gPTYPE==
"REFFvsIRHO") gfit =
new TF1(
"gfit",
"[0]*x",x[0],x[nRHO-1]);
979 gfit=gr->GetFunction(
"gfit");
980 gfit->SetLineColor(kBlue);
981 gfit->SetLineWidth(1);
996 cout << ofname << endl;
1001 cout <<
"Write values on: " << ofname << endl;
1029 sprintf(cut,
"type==%d",itype);
1032 float dmin =
gTRMDC->GetMinimum(
"distance");
1033 float dmax =
gTRMDC->GetMaximum(
"distance");
1038 if(enorm>enorm_max) enorm_max=enorm;
1041 if(enorm_max==0) enorm_max=1;
1042 dmin*=ufactor*enorm_max;
1043 dmax*=ufactor*enorm_max;
1045 TH1F* mhist =
new TH1F(
"mhist",
"mhist",100,dmin,dmax);
1047 TTreeFormula mcut(
"mcut", cut,
gTRMDC);
1048 gTRMDC->SetBranchStatus(
"*",
false);
1049 gTRMDC->SetBranchStatus(
"distance",
true);
1050 gTRMDC->SetBranchStatus(
"type",
true);
1053 gTRMDC->SetBranchAddress(
"distance",&distance);
1054 gTRMDC->SetBranchAddress(
"type",&mtype);
1055 int msize =
gTRMDC->GetEntries();
1057 for(
i=0;
i<msize;
i++) {
1059 if(mcut.EvalInstance()==0)
continue;
1067 mhist->Fill(distance);
1070 gTRMDC->SetBranchStatus(
"*",
true);
1071 cout <<
"nmdc : " << nmdc << endl;
1073 mhist->Draw(
"HIST");
1074 mhist->GetXaxis()->SetTitle(xtitle);
1075 mhist->GetYaxis()->SetTitle(ytitle);
1076 mhist->GetYaxis()->SetRangeUser(0.1,pow(10.,TMath::Ceil(TMath::Log10(mhist->GetMaximum()))));
1080 sprintf(cut,
"abs(time[0]-time[%d])<%g && netcc[%d]>%g && rho[%d]>%g",
1083 sprintf(cut,
"type[1]==%d && abs(time[0]-time[%d])<%g && netcc[%d]>%g && rho[%d]>%g",
1089 TH1F* whist =
new TH1F(
"whist",
"whist",100,dmin,dmax);
1091 TTreeFormula wcut(
"wcut", cut,
gTRWAVE);
1092 gTRWAVE->SetBranchStatus(
"*",
false);
1093 gTRWAVE->SetBranchStatus(
"range",
true);
1094 gTRWAVE->SetBranchStatus(
"type",
true);
1095 gTRWAVE->SetBranchStatus(
"time",
true);
1096 gTRWAVE->SetBranchStatus(
"neted",
true);
1097 gTRWAVE->SetBranchStatus(
"ecor",
true);
1098 gTRWAVE->SetBranchStatus(
"netcc",
true);
1099 gTRWAVE->SetBranchStatus(
"rho",
true);
1100 gTRWAVE->SetBranchStatus(
"penalty",
true);
1103 gTRWAVE->SetBranchAddress(
"range",range);
1104 gTRWAVE->SetBranchAddress(
"type",wtype);
1105 int wsize =
gTRWAVE->GetEntries();
1107 for(
i=0;
i<wsize;
i++) {
1109 if(wcut.EvalInstance()==0)
continue;
1110 distance=ufactor*range[1];
1117 whist->Fill(distance);
1120 gTRWAVE->SetBranchStatus(
"*",
true);
1121 cout <<
"nwave : " << nwave << endl;
1122 whist->SetFillColor(kRed);
1123 whist->Draw(
"SAME");
1128 mhist->SetTitle(title);
1133 sprintf(ofname,
"%s/%s_%s.png",
1136 sprintf(ofname,
"%s/%s_%s.png",
1139 cout << ofname << endl;
1143 TH1F* ehist =
new TH1F(
"ehist",
"ehist",100,dmin,dmax);
1144 for(
int i=1;
i<=mhist->GetNbinsX();
i++) {
1145 double ndet = whist->GetBinContent(
i);
1146 double ninj = mhist->GetBinContent(
i);
1147 double eff = ninj ? ndet/
ninj : 0.;
1148 ehist->SetBinContent(
i,eff);
1150 ehist->Draw(
"HIST");
1151 ehist->GetXaxis()->SetTitle(xtitle);
1152 ehist->GetYaxis()->SetTitle(
"efficiency");
1154 ehist->SetTitle(
"Efficiency vs Distance");
1157 sprintf(ofname,
"%s/%s_%s.png",
1158 gODIR.Data(),
"EFFvsDIST",
"ALL");
1160 sprintf(ofname,
"%s/%s_%s.png",
1161 gODIR.Data(),
"EFFvsDIST",gMDC->
wfList[itype-1].name.Data());
1163 cout << ofname << endl;
1176 char index_file[1024];
1183 out <<
"<html>" << endl;
1184 out <<
"<font color=\"black\" style=\"font-weight:bold;\"><center><p><h2>" 1185 << ptitle.Data() <<
"</h2><p><center></font>" << endl;
1186 out <<
"<hr><br>" << endl;
1192 if(
gPTYPE==
"EVTvsRHO") {offset=0; size=0;}
1194 for(
int i=offset;
i<=
size;
i++) {
1195 out <<
"<table border=0 cellpadding=2 align=\"center\">" << endl;
1196 out <<
"<tr align=\"center\">" << endl;
1198 out <<
"<td><font style=\"font-weight:bold;\"><center><p><h2>" 1199 <<
"ALL" <<
"</h2><p><center></font></td>" << endl;
1201 out <<
"<td><font style=\"font-weight:bold;\"><center><p><h2>" 1202 << gMDC->
wfList[
i-1].name.Data() <<
"</h2><p><center></font></td>" << endl;
1204 out <<
"</tr>" << endl;
1205 out <<
"<tr align=\"center\">" << endl;
1212 sprintf(oline,
"<td><a href=\"%s\"><img src=\"%s\" width=650></a></td>",fname,fname);
1213 out << oline << endl;
1214 out <<
"</tr>" << endl;
1215 out <<
"</table>" << endl;
1217 out <<
"</html>" << endl;
1230 for(
int i=0;
i<pSIZE;
i++) {
1231 ptype[I++]=pTYPE[
i];
1232 if(pTYPE[
i]==
"RECvsINJ") ptype[I++]=
"EFFvsDIST";
1237 char index_file[1024];
1243 out <<
"<html>" << endl;
1244 out <<
"<font color=\"black\" style=\"font-weight:bold;\"><center><p><h1>" 1247 out <<
"<font color=\"red\" style=\"font-weight:bold;\"><center><p><h3>" 1250 out <<
"<hr>" << endl;
1251 out <<
"<h3>FAD Options</h3>" << endl;
1254 out <<
"<ul>" << endl;
1255 out <<
"<li> odir : <font color=\"red\"> " << odir <<
"</font>" << endl;
1256 out <<
"</ul>" << endl;
1258 out <<
"<ul>" << endl;
1259 out <<
"<li> --bkgrep : <font color=\"red\"> " <<
pp_fad_bkgrep <<
"</font>" << endl;
1260 out <<
"</ul>" << endl;
1263 if(
pp_fad_hrss==
"0") info =
" (hrss rescale is not applied)";
1264 else info =
" (apply a constant hrss rescale)";
1265 }
else info =
" (hrss is rescaled using custom hrss factors)";
1267 out <<
"<ul>" << endl;
1268 out <<
"<li> --hrss : <font color=\"red\"> " <<
pp_fad_hrss <<
"</font>" << info << endl;
1269 out <<
"</ul>" << endl;
1271 if(
gFIT) info =
" (apply fit)";
1272 else info =
" (fit not applied)";
1274 out <<
"<ul>" << endl;
1275 out <<
"<li> --gfit : <font color=\"red\"> " <<
gFIT <<
"</font>" << info << endl;
1276 out <<
"</ul>" << endl;
1278 out <<
"<ul>" << endl;
1279 out <<
"<li> --rhomin : <font color=\"red\"> " <<
gRHOMIN <<
"</font>" 1280 <<
" (rho minimum used to compute FAD plots)" << endl;
1281 out <<
"</ul>" << endl;
1283 if(
gNZBINS<0) info =
" (un-biased FAD)";
1284 else if(
gNZBINS==0) info =
" (standard FAD)";
1285 else if(
gNZBINS>0) info =
" (test FAD)";
1287 out <<
"<ul>" << endl;
1288 out <<
"<li> --nzbins : <font color=\"red\"> " <<
gNZBINS <<
"</font>" << info << endl;
1289 out <<
"</ul>" << endl;
1292 else info =
" (Mpc,Myr)";
1294 out <<
"<ul>" << endl;
1295 out <<
"<li> --units : <font color=\"red\"> " <<
pp_fad_units <<
"</font>" << info << endl;
1296 out <<
"</ul>" << endl;
1298 if(
pp_fad_distr==
"FORMULA") info =
" (radial distribution is computed from formula)";
1299 else info =
" (radial distribution is computed from mdc injections)";
1301 out <<
"<ul>" << endl;
1302 out <<
"<li> --distr : <font color=\"red\"> " <<
pp_fad_distr <<
"</font>" << info << endl;
1303 out <<
"</ul>" << endl;
1305 out <<
"<ul>" << endl;
1306 out <<
"<li> --nbins : <font color=\"red\"> " <<
gNBINS <<
"</font>" 1307 <<
" (number of bins used in hist to computed the radial distribution from the MDC injections root file)" << endl;
1308 out <<
"</ul>" << endl;
1310 out <<
"<hr><br>" << endl;
1314 _ptype[index++]=
"FAPvsRHO";
1315 for(
int i=0;
i<
nPLOT+1;
i++)
if(ptype[
i]!=
"FAPvsRHO") _ptype[index++]=ptype[
i];
1317 for(
int i=0;
i<psize;
i++) {
1318 out <<
"<table border=0 cellpadding=2 align=\"center\">" << endl;
1319 out <<
"<tr align=\"center\">" << endl;
1320 out <<
"</tr>" << endl;
1321 out <<
"<tr align=\"center\">" << endl;
1324 sprintf(fname,
"%s_%s.png",_ptype[
i].Data(),
"ALL");
1325 sprintf(oline,
"<td><a href=\"%s\"><img src=\"%s\" width=650></a></td>",fname,fname);
1326 out << oline << endl;
1328 sprintf(fname,
"%s_%s.png",_ptype[
i].Data(),
"ALL");
1329 sprintf(oline,
"<td><a href=\"%s\"><img src=\"%s\" width=520></a></td>",fname,fname);
1330 out << oline << endl;
1331 sprintf(fname,
"%s_%s.png",_ptype[
i+1].Data(),
"ALL");
1332 sprintf(oline,
"<td><a href=\"%s\"><img src=\"%s\" width=520></a></td>",fname,fname);
1333 out << oline << endl;
1335 out <<
"</tr>" << endl;
1336 out <<
"</table>" << endl;
1337 if(
i==0) out <<
"<hr><br>" << endl;
else i++;
1339 out <<
"</html>" << endl;
1349 sprintf(cmd,
"root -n -l -b ${CWB_ROOTLOGON_FILE} '${HOME_CWB}/info/macros/MakeHTML.C\(\"%s\",false\)'",odir.Data());
1351 sprintf(cmd,
"cp ${HOME_WAT}//html/etc/html/ROOT.css %s",odir.Data());
1353 sprintf(cmd,
"cp ${HOME_WAT}//html/etc/html/ROOT.js %s",odir.Data());
1355 sprintf(cmd,
"cp ${HOME_WAT}//html/etc/html/tabber.css %s",odir.Data());
1357 sprintf(cmd,
"cp ${HOME_WAT}//html/etc/html/tabber.js %s",odir.Data());
1363 #define NTYPE_MAX 20 1377 if(ninj==0) {cout <<
"Error - no injection - terminated" << endl;
exit(1);}
1383 for(
int j=0;
j<
nset;
j++)
if(imdc_set[
i]==imdc_set_name[
j]) bnew=
false;
1384 if(bnew) imdc_set_name[nset++]=imdc_set[
i];
1386 cout <<
"nset : " << nset << endl;
1389 for(
int j=0;
j<
ninj;
j++)
if(imdc_set[
j]==imdc_set_name[
i]) imdc_iset[
j]=
i;
1391 for (
int iset=0;iset<
nset;iset++) cout << iset <<
" " << imdc_set_name[iset].Data() << endl;
1393 Color_t
colors[
NMDC_MAX] = { 6, 3, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7,
1394 6, 3, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7,
1395 6, 3, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7,
1396 6, 3, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7 };
1397 Style_t markers[
NMDC_MAX]= {20,21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,
1398 21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,20,
1399 21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,20,
1400 21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,20 };
1411 for(
int iset=0;iset<
nset;iset++) {
1414 for(
i=0;
i<
ninj;
i++)
if(imdc_iset[
i]==iset) iset_size++;
1415 double hleg = 0.88-iset_size*0.08;
1416 legend[iset] =
new TLegend(0.58,hleg,0.99,0.88,NULL,
"brNDC");
1417 legend[iset]->AddEntry((TObject*)0,
"",
"");
1419 mg[iset] =
new TMultiGraph();
1423 TString ptitle=imdc_set_name[iset];
1425 TString ytitle=
"FAD (Kpc^{-3} Kyr^{-1})";
1432 if(imdc_iset[
i]!=iset)
continue;
1433 cout <<
"MakeMultiPlotFAD : Processing -> " << imdc_name[
i] << endl;
1434 gr[
i] =
Plot(
i+1, ptitle, xtitle, ytitle,
false);
1435 gr[
i]->SetLineColor(colors[
i]);
1436 int N = gr[
i]->GetN();
1437 double* Y = gr[
i]->GetY();
1438 for(
int k=0;k<N;k++) if(Y[k]>0 && Y[
k]<ymin) ymin=Y[
k];
1439 for(
int k=0;k<N;k++) if(Y[k]>0 && Y[
k]>ymax) ymax=Y[
k];
1440 double fad_rho8 = gr[
i]->Eval(8);
1441 char legname[32];
sprintf(legname,
"%s, %5.1E",imdc_name[i], fad_rho8);
1442 legend[iset]->AddEntry(gr[i],legname,
"lp");
1443 mg[iset]->Add(gr[i]);
1447 sprintf(namecanvas,
"c%i",iset);
1448 canvas[iset] =
new TCanvas(namecanvas,namecanvas,125+iset*10,82,976,576);
1449 canvas[iset]->Clear();
1450 canvas[iset]->ToggleEventStatus();
1451 canvas[iset]->SetLogy(
true);
1452 canvas[iset]->SetLogx(
true);
1453 canvas[iset]->SetGridx();
1454 canvas[iset]->SetGridy();
1455 canvas[iset]->SetFillColor(kWhite);
1458 mg[iset]->SetTitle(ptitle);
1459 mg[iset]->Paint(
"alp");
1460 mg[iset]->GetHistogram()->GetXaxis()->SetTitle(xtitle);
1461 mg[iset]->GetHistogram()->GetYaxis()->SetTitle(ytitle);
1462 mg[iset]->GetHistogram()->GetXaxis()->CenterTitle(
true);
1463 mg[iset]->GetHistogram()->GetXaxis()->SetLabelFont(42);
1464 mg[iset]->GetHistogram()->GetXaxis()->SetTitleFont(42);
1465 mg[iset]->GetHistogram()->GetXaxis()->SetTitleOffset(1.3);
1466 mg[iset]->GetHistogram()->GetYaxis()->SetLabelFont(42);
1467 mg[iset]->GetHistogram()->GetYaxis()->SetTitleFont(42);
1468 mg[iset]->GetHistogram()->GetXaxis()->SetRangeUser(
RHO[0],
RHO[
RHO.size()-2]);
1469 mg[iset]->GetHistogram()->GetYaxis()->SetRangeUser(0.90*ymin,1.1*ymax);
1470 mg[iset]->GetHistogram()->GetXaxis()->SetMoreLogLabels();
1472 mg[iset]->Draw(
"alp");
1474 char leg_header[32];
sprintf(leg_header,
"FAD @ rho[%d]=8",
pp_irho);
1475 legend[iset]->SetHeader(leg_header);
1476 legend[iset]->SetBorderSize(1);
1477 legend[iset]->SetTextAlign(22);
1478 legend[iset]->SetTextFont(12);
1479 legend[iset]->SetLineColor(1);
1480 legend[iset]->SetLineStyle(1);
1481 legend[iset]->SetLineWidth(1);
1482 legend[iset]->SetFillColor(0);
1483 legend[iset]->SetFillStyle(1001);
1484 legend[iset]->SetTextSize(0.04);
1485 legend[iset]->SetLineColor(kBlack);
1486 legend[iset]->SetFillColor(kWhite);
1488 legend[iset]->Draw();
1490 sprintf(ofile,
"%s/fad_rho_%s.gif",
gODIR.Data(),imdc_set_name[iset].Data());
1491 cout << ofile << endl;
1492 canvas[iset]->SaveAs(ofile);
void AddHtmlHeader(TString odir)
TGraphErrors * Plot(int mtype, TString ptitle, TString xtitle, TString ytitle, bool save=true)
vector< mdcpar > GetSkyParms()
std::vector< double > mdcHRSS(K)
void getVisibleVolume(int mtype)
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
void MakeMultiPlotFAD(TString mdc_inj_file)
void Import(TString umacro="")
size_t imdc_iset[NMDC_MAX]
double GetPar(TString name, vector< mdcpar > par, bool &error)
virtual size_t size() const
vector< double > normHRSS
size_t imdc_index[NMDC_MAX]
void RECvsINJ(int mtype, TString ptitle, TString xtitle, TString ytitle)
void MakeHtmlIndex(TString *ptype, int psize)
TString sel("slag[1]:slag[2]")
char imdc_name[NMDC_MAX][128]
vector< waveform > wfList
void MakePlot(TString ptype, bool pAll)
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
void cwb_mkfad(TString odir="fad", int nzbins=-1, double obstime=0, bool bexit=true)
size_t imdc_type[NMDC_MAX]
void MakeHtml(TString ptitle)
virtual void resize(unsigned int)
double imdc_fcentral[NMDC_MAX]
char imdc_set[NMDC_MAX][128]
double imdc_fbandwidth[NMDC_MAX]