33 #include "TRotation.h" 34 #include "TPolyLine.h" 35 #include "Math/Rotation3D.h" 36 #include "Math/Vector3Dfwd.h" 41 #define WAVE_TREE_NAME "waveburst" 49 iFile = TFile::Open(fName);
50 if((iFile==NULL) || (iFile!=NULL && !iFile->IsOpen())) {
51 cout <<
"netevent::Init : Error opening root file " << fName.Data() << endl;
57 ndim = tree->GetUserInfo()->GetSize();
60 cout <<
"netevent::Init : number of detectors declared in the constructor (" << n
61 <<
") are not equals to the one ("<<ndim<<
") declared in the root file : " 62 << fName.Data() << endl;
68 <<
" not present in the root file " << fName.Data() << endl;
74 cout <<
"netevent::Init : detector number is not declared in the constructor or" 75 <<
" not present in the root file " << fName.Data() << endl;
86 if (tree == 0)
return;
89 fChain->SetMakeClass(1);
91 fChain->SetBranchAddress(
"ndim",&ndim);
92 fChain->SetBranchAddress(
"run",&
run);
93 fChain->SetBranchAddress(
"nevent",&nevent);
94 fChain->SetBranchAddress(
"eventID",eventID);
95 fChain->SetBranchAddress(
"type",type);
96 fChain->SetBranchAddress(
"name",&
name);
97 fChain->SetBranchAddress(
"log",&
log);
98 fChain->SetBranchAddress(
"rate",
rate);
100 fChain->SetBranchAddress(
"volume",volume);
101 fChain->SetBranchAddress(
"size",
size);
102 fChain->SetBranchAddress(
"usize",&usize);
104 fChain->SetBranchAddress(
"gap",
gap);
105 fChain->SetBranchAddress(
"lag",lag);
106 fChain->SetBranchAddress(
"slag",
slag);
107 fChain->SetBranchAddress(
"strain",strain);
108 fChain->SetBranchAddress(
"phi",
phi);
109 fChain->SetBranchAddress(
"theta",
theta);
110 fChain->SetBranchAddress(
"psi",
psi);
111 fChain->SetBranchAddress(
"iota",iota);
112 fChain->SetBranchAddress(
"bp",bp);
113 fChain->SetBranchAddress(
"bx",bx);
116 fChain->SetBranchAddress(
"time",time);
117 fChain->SetBranchAddress(
"gps",
gps);
118 fChain->SetBranchAddress(
"right",right);
119 fChain->SetBranchAddress(
"left",left);
120 fChain->SetBranchAddress(
"duration",
duration);
121 fChain->SetBranchAddress(
"start",
start);
122 fChain->SetBranchAddress(
"stop",
stop);
124 fChain->SetBranchAddress(
"frequency",
frequency);
125 fChain->SetBranchAddress(
"low",low);
126 fChain->SetBranchAddress(
"high",high);
127 fChain->SetBranchAddress(
"bandwidth",bandwidth);
129 fChain->SetBranchAddress(
"hrss",
hrss);
130 fChain->SetBranchAddress(
"noise",noise);
131 fChain->SetBranchAddress(
"erA",erA);
132 if(fChain->GetBranch(
"Psm")!=NULL) fChain->SetBranchAddress(
"Psm",&Psm);
133 fChain->SetBranchAddress(
"null",null);
134 fChain->SetBranchAddress(
"nill",nill);
135 fChain->SetBranchAddress(
"netcc",netcc);
136 fChain->SetBranchAddress(
"neted",neted);
137 fChain->SetBranchAddress(
"rho",
rho);
139 fChain->SetBranchAddress(
"gnet",&gnet);
140 fChain->SetBranchAddress(
"anet",&anet);
141 fChain->SetBranchAddress(
"inet",&inet);
142 fChain->SetBranchAddress(
"ecor",&
ecor);
143 fChain->SetBranchAddress(
"norm",&norm);
144 fChain->SetBranchAddress(
"ECOR",&
ECOR);
145 fChain->SetBranchAddress(
"penalty",&penalty);
146 fChain->SetBranchAddress(
"likelihood",&likelihood);
148 fChain->SetBranchAddress(
"factor",&
factor);
149 fChain->SetBranchAddress(
"range",range);
150 fChain->SetBranchAddress(
"chirp",chirp);
151 fChain->SetBranchAddress(
"eBBH",eBBH);
152 fChain->SetBranchAddress(
"Deff",Deff);
153 fChain->SetBranchAddress(
"mass",
mass);
154 fChain->SetBranchAddress(
"spin",
spin);
156 fChain->SetBranchAddress(
"snr",snr);
157 fChain->SetBranchAddress(
"xSNR",xSNR);
158 fChain->SetBranchAddress(
"sSNR",sSNR);
159 fChain->SetBranchAddress(
"iSNR",
iSNR);
160 fChain->SetBranchAddress(
"oSNR",
oSNR);
161 fChain->SetBranchAddress(
"ioSNR",
ioSNR);
170 cout <<
"netevent::allocate : Error - number of detectors must be > 0" << endl;
174 if (!eventID) eventID= (Int_t*)malloc(2*
sizeof(Int_t));
175 else eventID= (Int_t*)realloc(eventID,2*
sizeof(Int_t));
176 if (!type) type= (Int_t*)malloc(2*
sizeof(Int_t));
177 else type= (Int_t*)realloc(type,2*
sizeof(Int_t));
179 else {
delete name;
name=
new string();}
180 if (!
log)
log=
new string();
181 else {
delete log;
log=
new string();}
182 if (!
rate)
rate= (Int_t*)malloc(ndim*
sizeof(Int_t));
183 else rate= (Int_t*)realloc(
rate,ndim*
sizeof(Int_t));
185 if (!volume) volume= (Int_t*)malloc(ndim*
sizeof(Int_t));
186 else volume= (Int_t*)realloc(volume,ndim*
sizeof(Int_t));
187 if (!
size)
size= (Int_t*)malloc(ndim*
sizeof(Int_t));
188 else size= (Int_t*)realloc(
size,ndim*
sizeof(Int_t));
190 if (!
gap)
gap= (Float_t*)malloc(ndim*
sizeof(Float_t));
191 else gap= (Float_t*)realloc(
gap,ndim*
sizeof(Float_t));
192 if (!lag) lag= (Float_t*)malloc((ndim+1)*
sizeof(Float_t));
193 else lag= (Float_t*)realloc(lag,(ndim+1)*
sizeof(Float_t));
194 if (!
slag)
slag= (Float_t*)malloc((ndim+1)*
sizeof(Float_t));
195 else slag= (Float_t*)realloc(
slag,(ndim+1)*
sizeof(Float_t));
196 if (!
gps)
gps= (Double_t*)malloc((ndim)*
sizeof(Double_t));
197 else gps= (Double_t*)realloc(
gps,(ndim)*
sizeof(Double_t));
198 if (!strain) strain= (Double_t*)malloc(2*
sizeof(Double_t));
199 else strain= (Double_t*)realloc(strain,2*
sizeof(Double_t));
200 if (!
phi)
phi= (Float_t*)malloc(4*
sizeof(Float_t));
201 else phi= (Float_t*)realloc(
phi,4*
sizeof(Float_t));
202 if (!
theta)
theta= (Float_t*)malloc(4*
sizeof(Float_t));
203 else theta= (Float_t*)realloc(
theta,4*
sizeof(Float_t));
204 if (!
psi)
psi= (Float_t*)malloc(2*
sizeof(Float_t));
205 else psi= (Float_t*)realloc(
psi,2*
sizeof(Float_t));
206 if (!iota) iota= (Float_t*)malloc(2*
sizeof(Float_t));
207 else iota= (Float_t*)realloc(iota,2*
sizeof(Float_t));
208 if (!bp) bp= (Float_t*)malloc(ndim*2*
sizeof(Float_t));
209 else bp= (Float_t*)realloc(bp,ndim*2*
sizeof(Float_t));
210 if (!bx) bx= (Float_t*)malloc(ndim*2*
sizeof(Float_t));
211 else bx= (Float_t*)realloc(bx,ndim*2*
sizeof(Float_t));
213 if (!time) time= (Double_t*)malloc(ndim*2*
sizeof(Double_t));
214 else time= (Double_t*)realloc(time,ndim*2*
sizeof(Double_t));
215 if (!right) right= (Float_t*)malloc(ndim*
sizeof(Float_t));
216 else right= (Float_t*)realloc(right,ndim*
sizeof(Float_t));
217 if (!left) left= (Float_t*)malloc(ndim*
sizeof(Float_t));
218 else left= (Float_t*)realloc(left,ndim*
sizeof(Float_t));
221 if (!
start)
start= (Double_t*)malloc(ndim*
sizeof(Double_t));
222 else start= (Double_t*)realloc(
start,ndim*
sizeof(Double_t));
223 if (!
stop)
stop= (Double_t*)malloc(ndim*
sizeof(Double_t));
224 else stop= (Double_t*)realloc(
stop,ndim*
sizeof(Double_t));
228 if (!low) low= (Float_t*)malloc(ndim*
sizeof(Float_t));
229 else low= (Float_t*)realloc(low,ndim*
sizeof(Float_t));
230 if (!high) high= (Float_t*)malloc(ndim*
sizeof(Float_t));
231 else high= (Float_t*)realloc(high,ndim*
sizeof(Float_t));
232 if (!bandwidth) bandwidth=(Float_t*)malloc(ndim*
sizeof(Float_t));
233 else bandwidth=(Float_t*)realloc(bandwidth,ndim*
sizeof(Float_t));
234 if (!
hrss)
hrss= (Double_t*)malloc(ndim*2*
sizeof(Double_t));
235 else hrss= (Double_t*)realloc(
hrss,ndim*2*
sizeof(Double_t));
236 if (!noise) noise= (Double_t*)malloc(ndim*
sizeof(Double_t));
237 else noise= (Double_t*)realloc(noise,ndim*
sizeof(Double_t));
238 if (!null) null= (Float_t*)malloc(ndim*
sizeof(Float_t));
239 else null= (Float_t*)realloc(null,ndim*
sizeof(Float_t));
240 if (!nill) nill= (Float_t*)malloc(ndim*
sizeof(Float_t));
241 else nill= (Float_t*)realloc(nill,ndim*
sizeof(Float_t));
242 if (!netcc) netcc= (Float_t*)malloc(4*
sizeof(Float_t));
243 else netcc= (Float_t*)realloc(netcc,4*
sizeof(Float_t));
244 if (!neted) neted= (Float_t*)malloc(5*
sizeof(Float_t));
245 else neted= (Float_t*)realloc(neted,5*
sizeof(Float_t));
246 if (!
rho)
rho= (Float_t*)malloc(2*
sizeof(Float_t));
247 else rho= (Float_t*)realloc(
rho,2*
sizeof(Float_t));
248 if (!erA) erA= (Float_t*)malloc(11*
sizeof(Float_t));
249 else erA= (Float_t*)realloc(erA,11*
sizeof(Float_t));
250 if (!range) range= (Float_t*)malloc(2*
sizeof(Float_t));
251 else range= (Float_t*)realloc(range,2*
sizeof(Float_t));
252 if (!chirp) chirp= (Float_t*)malloc(6*
sizeof(Float_t));
253 else chirp= (Float_t*)realloc(chirp,6*
sizeof(Float_t));
254 if (!eBBH) eBBH= (Float_t*)malloc(4*
sizeof(Float_t));
255 else eBBH= (Float_t*)realloc(eBBH,4*
sizeof(Float_t));
256 if (!Deff) Deff= (Float_t*)malloc(ndim*
sizeof(Float_t));
257 else Deff= (Float_t*)realloc(Deff,ndim*
sizeof(Float_t));
258 if (!
mass)
mass= (Float_t*)malloc(2*
sizeof(Float_t));
259 else mass= (Float_t*)realloc(
mass,ndim*
sizeof(Float_t));
260 if (!
spin)
spin= (Float_t*)malloc(6*
sizeof(Float_t));
261 else spin= (Float_t*)realloc(
spin,6*
sizeof(Float_t));
263 if (!snr) snr= (Float_t*)malloc(ndim*
sizeof(Float_t));
264 else snr= (Float_t*)realloc(snr,ndim*
sizeof(Float_t));
265 if (!xSNR) xSNR= (Float_t*)malloc(ndim*
sizeof(Float_t));
266 else xSNR= (Float_t*)realloc(xSNR,ndim*
sizeof(Float_t));
267 if (!sSNR) sSNR= (Float_t*)malloc(ndim*
sizeof(Float_t));
268 else sSNR= (Float_t*)realloc(sSNR,ndim*
sizeof(Float_t));
269 if (!
iSNR)
iSNR= (Float_t*)malloc(ndim*
sizeof(Float_t));
270 else iSNR= (Float_t*)realloc(
iSNR,ndim*
sizeof(Float_t));
271 if (!
oSNR)
oSNR= (Float_t*)malloc(ndim*
sizeof(Float_t));
272 else oSNR= (Float_t*)realloc(
oSNR,ndim*
sizeof(Float_t));
273 if (!
ioSNR)
ioSNR= (Float_t*)malloc(ndim*
sizeof(Float_t));
274 else ioSNR= (Float_t*)realloc(
ioSNR,ndim*
sizeof(Float_t));
285 for(
int i=0;
i<2;
i++) eventID[
i]=0;
286 for(
int i=0;
i<2;
i++) type[
i]=0;
287 for(
int i=0;
i<2;
i++) strain[
i]=0;
292 for(
int i=0;
i<2;
i++) iota[
i]=0;
293 for(
int i=0;
i<4;
i++) netcc[
i]=0;
294 for(
int i=0;
i<5;
i++) neted[
i]=0;
296 for(
int i=0;
i<11;
i++) erA[
i]=0;
298 for(
int i=0;
i<2;
i++) range[
i]=0;
299 for(
int i=0;
i<6;
i++) chirp[
i]=0;
300 for(
int i=0;
i<4;
i++) eBBH[
i]=0;
305 for(
int i=0;
i<ndim+1;
i++) lag[
i]=0;
306 for(
int i=0;
i<ndim+1;
i++)
slag[
i]=0;
308 for(
int i=0;
i<2*ndim;
i++) bp[
i]=0;
309 for(
int i=0;
i<2*ndim;
i++) bx[
i]=0;
310 for(
int i=0;
i<2*ndim;
i++)
hrss[
i]=0;
311 for(
int i=0;
i<2*ndim;
i++) time[
i]=0;
313 for(
int i=0;
i<ndim;
i++) {
315 gps[
i]=0; snr[
i]=0; right[
i]=0; left[
i]=0;
317 high[
i]=0; bandwidth[
i]=0; noise[
i]=0; null[
i]=0; nill[
i]=0;
329 b_ndim = fChain->GetBranch(
"ndim");
330 b_run = fChain->GetBranch(
"run");
331 b_nevent = fChain->GetBranch(
"nevent");
332 b_eventID = fChain->GetBranch(
"eventID");
333 b_type = fChain->GetBranch(
"type");
334 b_name = fChain->GetBranch(
"name");
335 b_log = fChain->GetBranch(
"log");
336 b_rate = fChain->GetBranch(
"rate");
338 b_volume = fChain->GetBranch(
"volume");
339 b_size = fChain->GetBranch(
"size");
340 b_usize = fChain->GetBranch(
"usize");
342 b_gap = fChain->GetBranch(
"gap");
343 b_lag = fChain->GetBranch(
"lag");
344 b_slag = fChain->GetBranch(
"slag");
345 b_strain = fChain->GetBranch(
"strain");
346 b_phi = fChain->GetBranch(
"phi");
347 b_theta = fChain->GetBranch(
"theta");
348 b_psi = fChain->GetBranch(
"psi");
349 b_iota = fChain->GetBranch(
"iota");
350 b_bp= fChain->GetBranch(
"bx");
351 b_bx = fChain->GetBranch(
"bp");
353 b_time = fChain->GetBranch(
"time");
354 b_gps = fChain->GetBranch(
"gps");
355 b_right = fChain->GetBranch(
"right");
356 b_left = fChain->GetBranch(
"left");
357 b_start = fChain->GetBranch(
"start");
358 b_stop = fChain->GetBranch(
"stop");
359 b_duration = fChain->GetBranch(
"duration");
361 b_frequency = fChain->GetBranch(
"frequency");
362 b_low = fChain->GetBranch(
"low");
363 b_high = fChain->GetBranch(
"high");
364 b_bandwidth = fChain->GetBranch(
"bandwidth");
366 b_hrss = fChain->GetBranch(
"hrss");
367 b_noise = fChain->GetBranch(
"noise");
368 b_erA = fChain->GetBranch(
"erA");
369 b_Psm = fChain->GetBranch(
"Psm");
370 b_null = fChain->GetBranch(
"null");
371 b_nill = fChain->GetBranch(
"nill");
372 b_netcc = fChain->GetBranch(
"netcc");
373 b_neted = fChain->GetBranch(
"neted");
374 b_rho = fChain->GetBranch(
"rho");
376 b_gnet = fChain->GetBranch(
"gnet");
377 b_anet = fChain->GetBranch(
"anet");
378 b_inet = fChain->GetBranch(
"inet");
379 b_ecor = fChain->GetBranch(
"ecor");
380 b_norm = fChain->GetBranch(
"norm");
381 b_ECOR = fChain->GetBranch(
"ECOR");
382 b_penalty = fChain->GetBranch(
"penalty");
383 b_likelihood = fChain->GetBranch(
"likelihood");
385 b_factor = fChain->GetBranch(
"factor");
386 b_range = fChain->GetBranch(
"range");
387 b_chirp = fChain->GetBranch(
"chirp");
388 b_eBBH = fChain->GetBranch(
"eBBH");
389 b_Deff = fChain->GetBranch(
"Deff");
390 b_mass = fChain->GetBranch(
"mass");
391 b_spin = fChain->GetBranch(
"spin");
393 b_snr = fChain->GetBranch(
"snr");
394 b_xSNR = fChain->GetBranch(
"xSNR");
395 b_sSNR = fChain->GetBranch(
"sSNR");
396 b_iSNR = fChain->GetBranch(
"iSNR");
397 b_oSNR = fChain->GetBranch(
"oSNR");
398 b_ioSNR = fChain->GetBranch(
"ioSNR");
405 if (!fChain)
return 0;
406 return fChain->GetEntries();
411 if (!fChain)
return 0;
412 return fChain->GetEntry(entry);
428 for(
int n=0;
n<=ndim;
n++) this->slag[
n]=slag[
n];
481 sprintf(crate,
"rate[%1d]/I",ndim);
483 sprintf(cvolume,
"volume[%1d]/I",ndim);
484 sprintf(csize,
"size[%1d]/I",ndim);
486 sprintf(cgap,
"gap[%1d]/F",ndim);
487 sprintf(clag,
"lag[%1d]/F",ndim+1);
488 sprintf(cslag,
"slag[%1d]/F",ndim+1);
489 sprintf(cgps,
"gps[%1d]/D",ndim);
491 if(ndim<5)
sprintf(cbp,
"bp[%1d]/F",ndim*2);
492 else sprintf(cbp,
"bp[%2d]/F",ndim*2);
493 if(ndim<5)
sprintf(cbx,
"bx[%1d]/F",ndim*2);
494 else sprintf(cbx,
"bx[%2d]/F",ndim*2);
496 if(ndim<5)
sprintf(ctime,
"time[%1d]/D",ndim*2);
497 else sprintf(ctime,
"time[%2d]/D",ndim*2);
499 sprintf(cright,
"right[%1d]/F",ndim);
500 sprintf(cleft,
"left[%1d]/F",ndim);
501 sprintf(cduration,
"duration[%1d]/F",ndim);
502 sprintf(cstart,
"start[%1d]/D",ndim);
503 sprintf(cstop,
"stop[%1d]/D",ndim);
505 sprintf(cfrequency,
"frequency[%1d]/F",ndim);
506 sprintf(clow,
"low[%1d]/F",ndim);
507 sprintf(chigh,
"high[%1d]/F",ndim);
508 sprintf(cbandwidth,
"bandwidth[%1d]/F",ndim);
510 if(ndim<5)
sprintf(chrss,
"hrss[%1d]/D",ndim*2);
511 else sprintf(chrss,
"hrss[%2d]/D",ndim*2);
513 sprintf(cnoise,
"noise[%1d]/D",ndim);
514 sprintf(cnull,
"null[%1d]/F",ndim);
515 sprintf(cnill,
"nill[%1d]/F",ndim);
516 sprintf(cDeff,
"Deff[%1d]/F",ndim);
522 sprintf(csnr,
"snr[%1d]/F",ndim);
523 sprintf(csSNR,
"sSNR[%1d]/F",ndim);
524 sprintf(cxSNR,
"xSNR[%1d]/F",ndim);
525 sprintf(ciSNR,
"iSNR[%1d]/F",ndim);
526 sprintf(coSNR,
"oSNR[%1d]/F",ndim);
527 sprintf(cioSNR,
"ioSNR[%1d]/F",ndim);
533 waveTree->Branch(
"ndim", &ndim,
"ndim/I");
534 waveTree->Branch(
"run", &
run,
"run/I");
535 waveTree->Branch(
"nevent", &nevent,
"nevent/I");
536 waveTree->Branch(
"eventID", eventID,
"eventID[2]/I");
537 waveTree->Branch(
"type", type,
"type[2]/I");
538 waveTree->Branch(
"name",
name);
539 waveTree->Branch(
"log",
log);
540 waveTree->Branch(
"rate",
rate, crate);
542 waveTree->Branch(
"usize", &usize,
"usize/I");
543 waveTree->Branch(
"volume", volume, cvolume);
544 waveTree->Branch(
"size",
size, csize);
546 waveTree->Branch(
"gap",
gap, cgap);
547 waveTree->Branch(
"lag", lag, clag);
548 waveTree->Branch(
"slag",
slag, cslag);
549 waveTree->Branch(
"strain", strain,
"strain[2]/D");
550 waveTree->Branch(
"phi",
phi,
"phi[4]/F");
551 waveTree->Branch(
"theta",
theta,
"theta[4]/F");
552 waveTree->Branch(
"psi",
psi,
"psi[2]/F");
553 waveTree->Branch(
"iota", iota,
"iota[2]/F");
554 waveTree->Branch(
"bp", bp, cbp);
555 waveTree->Branch(
"bx", bx, cbx);
557 waveTree->Branch(
"time", time, ctime);
558 waveTree->Branch(
"gps",
gps, cgps);
559 waveTree->Branch(
"left", left, cleft);
560 waveTree->Branch(
"right", right, cright);
561 waveTree->Branch(
"start",
start, cstart);
562 waveTree->Branch(
"stop",
stop, cstop);
563 waveTree->Branch(
"duration",
duration, cduration);
565 waveTree->Branch(
"frequency",
frequency, cfrequency);
566 waveTree->Branch(
"low", low, clow);
567 waveTree->Branch(
"high", high, chigh);
568 waveTree->Branch(
"bandwidth", bandwidth, cbandwidth);
570 waveTree->Branch(
"hrss",
hrss, chrss);
571 waveTree->Branch(
"noise", noise, cnoise);
573 waveTree->Branch(
"erA", erA,
"erA[11]/F");
575 waveTree->Branch(
"Psm",
"skymap",&Psm, 32000,0);
577 waveTree->Branch(
"null", null, cnull);
578 waveTree->Branch(
"nill", nill, cnill);
579 waveTree->Branch(
"netcc", netcc,
"netcc[4]/F");
580 waveTree->Branch(
"neted", neted,
"neted[5]/F");
581 waveTree->Branch(
"rho",
rho,
"rho[2]/F");
583 waveTree->Branch(
"gnet", &gnet,
"gnet/F");
584 waveTree->Branch(
"anet", &anet,
"anet/F");
585 waveTree->Branch(
"inet", &inet,
"inet/F");
586 waveTree->Branch(
"ecor", &
ecor,
"ecor/F");
587 waveTree->Branch(
"norm", &norm,
"norm/F");
588 waveTree->Branch(
"ECOR", &
ECOR,
"ECOR/F");
589 waveTree->Branch(
"penalty", &penalty,
"penalty/F");
590 waveTree->Branch(
"likelihood", &likelihood,
"likelihood/F");
592 waveTree->Branch(
"factor", &
factor,
"factor/F");
593 waveTree->Branch(
"chirp", chirp, cchirp);
594 waveTree->Branch(
"range", range, crange);
595 waveTree->Branch(
"eBBH", eBBH, ceBBH);
596 waveTree->Branch(
"Deff", Deff, cDeff);
597 waveTree->Branch(
"mass",
mass, cmass);
598 waveTree->Branch(
"spin",
spin, cspin);
600 waveTree->Branch(
"snr", snr, csnr);
601 waveTree->Branch(
"xSNR", xSNR, cxSNR);
602 waveTree->Branch(
"sSNR", sSNR, csSNR);
603 waveTree->Branch(
"iSNR",
iSNR, ciSNR);
604 waveTree->Branch(
"oSNR",
oSNR, coSNR);
605 waveTree->Branch(
"ioSNR",
ioSNR, cioSNR);
614 if(ndim != a.
ndim) { ndim=a.
ndim; this->allocate(); }
647 for(i=0; i<6; i++)
spin[i] = a.
spin[i];
648 for(i=0; i<4; i++) netcc[
i] = a.
netcc[
i];
649 for(i=0; i<5; i++) neted[i] = a.
neted[i];
650 for(i=0; i<2; i++)
rho[
i] = a.
rho[
i];
652 for(i=0; i<4; i++)
phi[
i] = a.
phi[
i];
653 for(i=0; i<11; i++) erA[i] = a.
erA[i];
654 for(i=0; i<2; i++) range[
i] = a.
range[
i];
655 for(i=0; i<4; i++) eBBH[i] = a.
eBBH[i];
656 for(i=0; i<6; i++) chirp[
i] = a.
chirp[
i];
658 lag[ndim]= a.
lag[ndim];
660 for(i=0; i<ndim; i++){
672 bp[i+ndim]= a.
bp[i+ndim];
674 bx[i+ndim]= a.
bx[i+ndim];
677 time[i+ndim]= a.
time[i+ndim];
722 double Pi = 3.14159265358979312;
723 this->factor =
fabs(factor);
724 factor = factor<=0 ? 1 :
fabs(factor);
726 bool pat0 = net->
pattern==0 ? true :
false;
734 double T, injTime,
TAU, pcc;
735 double x, ndmLike, Etot;
738 std::vector<float>* vP;
739 std::vector<int>* vI;
741 bool ellips = net->
tYPe==
'i' || net->
tYPe==
'I' ||
746 bool burst = net->
tYPe==
'b' || net->
tYPe==
'B';
769 int dsize = waveTree->GetUserInfo()->GetSize();
770 if(dsize!=0 && dsize!=nIFO) {
771 cout<<
"netevent::output2G(): wrong user detector list in header tree"<<endl;
exit(1);
774 for(
int n=0;n<
nIFO;n++) {
778 waveTree->GetUserInfo()->Add(pD);
786 pwc = net->
getwc(LAG);
787 if(!pwc->
size())
return;
789 clusterID_net = pwc->
get((
char*)
"ID",0,
'S',0);
790 K = clusterID_net.
size();
793 id = size_t(clusterID_net.
data[k]+0.1);
794 if(ID&&(ID==
id)) {kid=
k;
break;}
805 rate_net = pwc->
get((
char*)
"rate",0,
'R',0);
806 vol0_net = pwc->
get((
char*)
"volume",0,
'R',0);
807 vol1_net = pwc->
get((
char*)
"VOLUME",0,
'R',0);
808 size_net = pwc->
get((
char*)
"size",0,
'R',0);
809 low_net = pwc->
get((
char*)
"low",0,
'R',0);
810 high_net = pwc->
get((
char*)
"high",0,
'R',0);
811 cFreq_net = pwc->
get((
char*)
"freq",0,
'L',0,
false);
812 duration_net = pwc->
get((
char*)
"duration",0,
'L',0,
false);
813 bandwidth_net = pwc->
get((
char*)
"bandwidth",0,
'L',0,
false);
815 for(i=1; i<=
int(nIFO); i++) {
816 start_net.
append(pwc->
get((
char*)
"start",i,
'L',0));
817 stop_net.
append(pwc->
get((
char*)
"stop",i,
'L',0));
818 noise_net.
append(pwc->
get((
char*)
"noise",i,
'S',0));
819 NOISE_net.
append(pwc->
get((
char*)
"NOISE",i,
'S',0));
823 vI = &(net->
wc_List[LAG].p_Ind[ID-1]);
826 for(i=0; i<
int(nIFO); i++)
835 this->eventID[0] =
ID;
836 this->eventID[1] = 0;
837 this->iota[0] = pcd->
iota;
847 this->gnet = pcd->
gNET;
848 this->anet = pcd->
aNET;
849 this->inet = pcd->
iNET;
850 this->norm = pcd->
norm;
851 this->likelihood = pcd->
likenet;
852 this->volume[0] =
int(vol0_net.
data[kid]+0.5);
853 this->volume[1] =
int(vol1_net.
data[kid]+0.5);
856 this->chirp[1] = pcd->
mchirp;
870 this->strain[0] = 0.;
873 for(i=0; i<5; i++) { this->neted[
i] = 0.; }
879 for(i=0; i<
int(nIFO); i++) {
890 this->snr[
i] = pd->
enrg;
892 this->null[
i] = pd->
null;
893 this->xSNR[
i] = pd->
xSNR;
894 this->sSNR[
i] = pd->
sSNR;
902 this->left[
i] = start_net.
data[
m];
911 this->time[
i] += lag[
i];
912 if(this->time[i]>xstop) this->time[
i] = xstart+(this->time[
i]-
xstop);
915 this->low[
i] = low_net.
data[
k];
916 this->high[
i] = high_net.
data[
k];
917 this->bandwidth[
i] = high_net.
data[
k] - low_net.
data[
k];
920 this->noise[
i] = pow(10.,noise_net.
data[m])/sqrt(inRate);
921 this->bp[
i]= Aa.
real();
922 this->bx[
i]= Aa.
imag();
923 this->strain[0] += this->
hrss[
i]*this->
hrss[
i];
925 Aa /= pow(10.,NOISE_net.
data[m]);
935 int mdet=0;
for(i=0; i<
int(nIFO); i++)
if(this->lag[i]==0) mdet=
i;
936 for(i=0; i<
int(nIFO); i++) {
945 if(this->stop[i]>xstop) this->stop[
i] = xstart+(this->stop[
i]-
xstop);
947 this->
duration[
i] = this->duration[mdet];
949 this->right[
i] = pwc->
stop-this->stop[
i];
953 this->bandwidth[0] = bandwidth_net.
data[kid];
956 ind = pwc->
sArea[ID-1].size();
958 this->erA[i] = i<ind ? pwc->sArea[ID-1][i] : 0.;
961 this->netcc[0] = pcd->
netcc;
962 this->netcc[1] = pcd->
skycc;
963 this->netcc[2] = pcd->
subnet;
964 this->netcc[3] = pcd->
SUBNET;
966 this->neted[0] = pcd->
netED;
968 this->neted[2] = pcd->
energy;
974 double chrho = this->chirp[3]*sqrt(this->chirp[5]);
978 this->strain[0] = sqrt(this->strain[0]);
979 if(!ellips) this->
psi[0] = gC.
arg()*180/
Pi;
981 this->penalty /= pat0 ? this->
size[0] : pcd->
nDoF;
993 if(T<injTime && INJ.
fill_in(net,mdcID)) {
1002 this->chirp[0] = INJ.
mchirp;
1003 this->eBBH[1] = INJ.
e0;
1004 this->eBBH[2] = INJ.
rp0;
1007 this->type[1] = INJ.
type;
1010 this->
log->erase(std::remove(this->
log->begin(), this->
log->end(),
'\n'), this->
log->end());
1012 this->
phi[1] = INJ.
phi[0];
1013 this->
psi[1] = INJ.
psi[0];
1015 this->iota[1] = INJ.
iota[1];
1019 for(i=0; i<6; i++) this->
spin[i] = INJ.
spin[i];
1026 int idSize = pd->
RWFID.size();
1028 for (
int mm=0; mm<idSize; mm++)
if (pd->
RWFID[mm]==ID) wfIndex=mm;
1030 for(j=0; j<
nIFO; j++) {
1039 pwfINJ[
j] = INJ.
pwf[
j];
1040 if (pwfINJ[j]==NULL) {
1041 cout <<
"Error : Injected waveform not saved !!! : detector " 1046 cout <<
"Error : Reconstructed waveform not saved !!! : ID -> " 1047 << ID <<
" : detector " << net->
ifoName[
j] << endl;
1051 if (wfIndex>=0) pwfREC[
j] = pd->
RWFP[wfIndex];
1054 double rFactor = 1.;
1060 double bINJ = wfINJ->
start();
1061 double eINJ = wfINJ->
start()+wfINJ->
size()/R;
1062 double bREC = wfREC->
start();
1063 double eREC = wfREC->
start()+wfREC->
size()/R;
1068 int oINJ = bINJ>bREC ? 0 :
int((bREC-bINJ)*R+0.5);
1069 int oREC = bINJ<bREC ? 0 :
int((bINJ-bREC)*R+0.5);
1072 double startXCOR = bINJ>bREC ? bINJ : bREC;
1073 double endXCOR = eINJ<eREC ? eINJ : eREC;
1074 int sizeXCOR =
int((endXCOR-startXCOR)*R+0.5);
1077 if (sizeXCOR<=0) {*wfINJ*=1./rFactor;
continue;}
1082 for (
int i=0;i<wfINJ->
size();i++) enINJ+=wfINJ->
data[i]*wfINJ->
data[i];
1086 for (
int i=0;i<wfREC->
size();i++) enREC+=wfREC->
data[i]*wfREC->
data[i];
1089 double xcorINJ_REC=0;
1090 for (
int i=0;i<sizeXCOR;i++) xcorINJ_REC+=wfINJ->
data[i+oINJ]*wfREC->
data[i+oREC];
1093 wfREC_SUB_INJ.
resize(sizeXCOR);
1094 for (
int i=0;i<sizeXCOR;i++) wfREC_SUB_INJ.data[i]=wfREC->
data[i+oREC]-wfINJ->
data[i+oINJ];
1095 wfREC_SUB_INJ.start(startXCOR);
1096 wfREC_SUB_INJ.rate(wfREC->
rate());
1098 this->
iSNR[
j] = enINJ;
1099 this->
oSNR[
j] = enREC;
1100 this->
ioSNR[
j] = xcorINJ_REC;
1112 this->range[1] = 0.;
1113 this->chirp[0] = 0.;
1117 this->strain[1] = 0.;
1119 this->
theta[1] = 0.;
1126 for(i=0; i<6; i++) this->
spin[i] = 0.;
1128 for(j=0; j<
nIFO; j++) {
1130 this->bp[j+
nIFO] = 0.;
1131 this->bx[j+
nIFO] = 0.;
1132 this->time[j+
nIFO] = 0.;
1141 if(this->
fP!=NULL) {
1142 fprintf(
fP,
"\n# trigger %d in lag %d for \n",
int(ID),
int(LAG));
1144 vP = &(net->
wc_List[LAG].p_Map[ID-1]);
1145 vI = &(net->
wc_List[LAG].p_Ind[ID-1]);
1149 fprintf(
fP,
"map_lenght: %d\n",
int(vP->size()));
1150 fprintf(
fP,
"#skyID theta DEC step phi R.A step probability cumulative\n");
1152 for(j=0; j<
int(vP->size()); j++) {
1155 x = (j==
int(vP->size())-1) ? 0 : x+(*vP)[
j];
1157 fprintf(
fP,
"%6d %5.1f %5.1f %6.2f %5.1f %5.1f %6.2f %e %e\n",
1164 if(waveTree!=NULL && net->
wc_List[LAG].p_Map.size()) {
1166 vP = &(net->
wc_List[LAG].p_Map[ID-1]);
1167 vI = &(net->
wc_List[LAG].p_Ind[ID-1]);
1175 for(j=0; j<
int(vP->size()); j++) {
1177 th = Psm->getTheta(i);
1178 ph = Psm->getPhi(i);
1179 k=Psm->getSkyIndex(th, ph);
1180 Psm->set(k,(*vP)[j]);
1185 if(waveTree!=NULL) waveTree->Fill();
1202 int bLag = LAG<0 ? 0 : LAG;
1203 int eLag = LAG<0 ? net->
nLag : LAG+1;
1205 double Pi = 3.14159265358979312;
1206 this->factor =
fabs(factor);
1207 factor = factor<=0 ? 1 :
fabs(factor);
1211 double* ndm = (
double*)malloc(N*N*
sizeof(
double));
1212 int iTYPE = net->
MRA ? 0 : 1;
1218 double T, injTime,
TAU, pcc;
1219 double x, tot_null, ndmLike, Etot;
1221 std::vector<float>* vP;
1222 std::vector<int>* vI;
1224 bool ellips = net->
tYPe==
'i' || net->
tYPe==
'I' ||
1225 net->
tYPe==
'g' || net->
tYPe==
'G' ||
1226 net->
tYPe==
's' || net->
tYPe==
'S' ||
1229 bool burst = net->
tYPe==
'b' || net->
tYPe==
'B';
1264 if(waveTree!=NULL) {
1265 for(
int n=0;n<
N;n++) {
1269 waveTree->GetUserInfo()->Add(pD);
1276 for(n=bLag; n<eLag; n++){
1279 if(!p->
size())
continue;
1281 clusterID_net = p->
get((
char*)
"ID",0,
'S',iTYPE);
1282 K = clusterID_net.
size();
1303 LH_net = p->
get((
char*)
"likelihood",0,
'R',iTYPE);
1304 rate_net = p->
get((
char*)
"rate",0,
'R',iTYPE);
1305 ell_net = p->
get((
char*)
"ellipticity",0,
'R',iTYPE);
1306 psi_net = p->
get((
char*)
"psi",0,
'R',iTYPE);
1307 phi_net = p->
get((
char*)
"phi",0,
'R',iTYPE);
1308 theta_net = p->
get((
char*)
"theta",0,
'R',iTYPE);
1309 size_net = p->
get((
char*)
"size",0,
'R',iTYPE);
1310 volume_net = p->
get((
char*)
"volume",0,
'R',iTYPE);
1311 low_net = p->
get((
char*)
"low",0,
'R',iTYPE);
1312 high_net = p->
get((
char*)
"high",0,
'R',iTYPE);
1314 for(i=1; i<
int(N+1); i++)
1316 time_net.
append(p->
get((
char*)
"time",i,
'L',0));
1317 start_net.
append(p->
get((
char*)
"start",i,
'L',iTYPE));
1318 stop_net.
append(p->
get((
char*)
"stop",i,
'L',iTYPE));
1319 frequency_net.
append(p->
get((
char*)
"FREQUENCY",i,
'L',0));
1320 rSNR_net.
append(p->
get((
char*)
"SNR",i,
'R',iTYPE));
1321 gSNR_net.
append(p->
get((
char*)
"SNR",i,
'S',iTYPE));
1322 gSNR_NET.
append(p->
get((
char*)
"SNR",i,
'P',iTYPE));
1323 hrss_net.
append(p->
get((
char*)
"hrss",i,
'W',iTYPE));
1324 hrss_NET.
append(p->
get((
char*)
"hrss",i,
'U',iTYPE));
1325 noise_net.
append(p->
get((
char*)
"noise",i,
'S',iTYPE));
1326 NOISE_net.
append(p->
get((
char*)
"NOISE",i,
'S',iTYPE));
1327 energy_net.
append(p->
get((
char*)
"energy",i,
'S',iTYPE));
1328 energy_NET.
append(p->
get((
char*)
"energy",i,
'P',iTYPE));
1329 null_net.
append(p->
get((
char*)
"null",i,
'W',iTYPE));
1333 energy_net += energy_NET;
1334 energy_net *= net->
MRA ? 1.0 : 0.5;
1339 ID = size_t(clusterID_net.
data[k]+0.1);
1340 if((iID)&&(ID!=iID))
continue;
1345 net->
setndm(ID,n,
true,1);
1350 vI = &(net->
wc_List[
n].p_Ind[ID-1]);
1359 this->eventID[0] =
ID;
1360 this->eventID[1] =
n;
1368 this->gnet = net->
gNET;
1369 this->anet = net->
aNET;
1370 this->inet = net->
iNET;
1371 this->iota[0] = net->
norm;
1372 this->norm = net->
norm;
1373 this->likelihood = 0.;
1378 this->strain[0] = 0.;
1383 for(i=0; i<
N; i++) Etot += energy_net.
data[i*K+k];
1385 for(i=0; i<5; i++) { this->neted[
i] = 0.; }
1406 this->volume[
i] =
int(volume_net.
data[k]+0.5);
1409 this->snr[
i] = energy_net.
data[
m];
1411 this->null[
i] = pd->
null;
1412 this->xSNR[
i] = pd->
xSNR;
1413 this->sSNR[
i] = pd->
sSNR;
1415 this->neted[1] +=
fabs(pd->
ED[1]);
1416 this->neted[2] +=
fabs(pd->
ED[2]);
1417 this->neted[3] +=
fabs(pd->
ED[3]);
1418 this->neted[4] +=
fabs(pd->
ED[4]);
1419 this->likelihood += snr[
i] - pd->
null;
1421 this->time[
i] = time_net.
data[
m] + this->
gps[
i];
1422 this->left[
i] = start_net.
data[
m];
1429 this->low[
i] = low_net.
data[
k];
1430 this->high[
i] = high_net.
data[
k];
1431 this->bandwidth[
i] = high_net.
data[
k] - low_net.
data[
k];
1434 this->
hrss[
i] = pow(pow(10.,hrss_net.
data[m]),2)+pow(pow(10.,hrss_NET.
data[m]),2);
1435 this->
hrss[
i] = sqrt(this->
hrss[i]/inRate);
1437 this->
hrss[
i] = pow(10.,hrss_net.
data[m])/sqrt(inRate);
1439 this->noise[
i] = pow(10.,noise_net.
data[m])/sqrt(inRate);
1440 this->bp[
i]= Aa.
real();
1441 this->bx[
i]= Aa.
imag();
1442 this->strain[0]+= this->
hrss[
i]*this->
hrss[
i];
1444 tot_null += this->null[
i];
1445 Aa /= pow(10.,NOISE_net.
data[m]);
1452 if(x<this->penalty) this->penalty =
x;
1460 this->netcc[2] = 0.;
1461 this->netcc[3] = 0.;
1463 for(i=0; i<
N; i++) {
1464 for(j=i; j<
int(N); j++) {
1470 pcc = pcc>0. ? ndm[
M]/pcc : 0.;
1473 this->netcc[2] += x*pcc;
1475 this->netcc[3] += x*pcc;
1478 ndmLike += ndm[M++];
1483 ind = p->
sArea[ID-1].size();
1485 this->erA[i] = i<ind ? p->sArea[ID-1][i] : 0.;
1488 this->netcc[0] = x/(tot_null+
x);
1491 this->netcc[1] = x/(tot_null+
x);
1493 this->netcc[2] /= (N-1)*ndmLike;
1494 this->netcc[3] /= (N-1)*ndmLike;
1497 this->
rho[0] = sqrt(
ecor*this->netcc[0]/N);
1498 this->
rho[1] = sqrt(
ECOR*this->netcc[0]/N);
1500 this->strain[0] = sqrt(this->strain[0]);
1501 this->penalty = sqrt(1./(1-this->penalty));
1502 if(!ellips) this->
psi[0] = gC.
arg()*180/
Pi;
1510 for(m=0; m<
M; m++) {
1513 if(T<injTime && INJ.
fill_in(net,mdcID)) {
1522 this->chirp[0] = INJ.
mchirp;
1523 this->eBBH[1] = INJ.
e0;
1524 this->eBBH[2] = INJ.
rp0;
1527 this->type[1] = INJ.
type;
1530 this->
phi[1] = INJ.
phi[0];
1531 this->
psi[1] = INJ.
psi[0];
1532 this->iota[1] = INJ.
iota[0];
1536 for(i=0; i<6; i++) this->
spin[i] = INJ.
spin[i];
1543 int idSize = pd->
RWFID.size();
1545 for (
int mm=0; mm<idSize; mm++)
if (pd->
RWFID[mm]==ID) wfIndex=mm;
1547 for(j=0; j<
int(N); j++) {
1551 this->bp[j+
N] = Aa.
real();
1552 this->bx[j+
N] = Aa.
imag();
1553 this->time[j+
N] = INJ.
time[
j];
1556 pwfINJ[
j] = INJ.
pwf[
j];
1557 if (pwfINJ[j]==NULL) {
1558 cout <<
"Error : Injected waveform not saved !!! : detector " 1563 cout <<
"Error : Reconstructed waveform not saved !!! : ID -> " 1564 << ID <<
" : detector " << net->
ifoName[
j] << endl;
1568 if (wfIndex>=0) pwfREC[
j] = pd->
RWFP[wfIndex];
1571 double rFactor = 1.;
1577 double bINJ = wfINJ->
start();
1578 double eINJ = wfINJ->
start()+wfINJ->
size()/R;
1579 double bREC = wfREC->
start();
1580 double eREC = wfREC->
start()+wfREC->
size()/R;
1585 int oINJ = bINJ>bREC ? 0 :
int((bREC-bINJ)*R+0.5);
1586 int oREC = bINJ<bREC ? 0 :
int((bINJ-bREC)*R+0.5);
1589 double startXCOR = bINJ>bREC ? bINJ : bREC;
1590 double endXCOR = eINJ<eREC ? eINJ : eREC;
1591 int sizeXCOR =
int((endXCOR-startXCOR)*R+0.5);
1594 if (sizeXCOR<=0)
continue;
1599 for (
int i=0;i<wfINJ->
size();i++) enINJ+=wfINJ->
data[i]*wfINJ->
data[i];
1604 for (
int i=0;i<sizeXCOR;i++) enREC+=wfREC->
data[i+oREC]*wfREC->
data[i+oREC];
1606 double xcorINJ_REC=0;
1607 for (
int i=0;i<sizeXCOR;i++) xcorINJ_REC+=wfINJ->
data[i+oINJ]*wfREC->
data[i+oREC];
1610 wfREC_SUB_INJ.
resize(sizeXCOR);
1611 for (
int i=0;i<sizeXCOR;i++) wfREC_SUB_INJ.data[i]=wfREC->
data[i+oREC]-wfINJ->
data[i+oINJ];
1612 wfREC_SUB_INJ.start(startXCOR);
1613 wfREC_SUB_INJ.rate(wfREC->
rate());
1614 this->
iSNR[
j] = enINJ;
1615 this->
oSNR[
j] = enREC;
1616 this->
ioSNR[
j] = xcorINJ_REC;
1628 this->range[1] = 0.;
1629 this->chirp[0] = 0.;
1633 this->strain[1] = 0.;
1635 this->
theta[1] = 0.;
1642 for(i=0; i<6; i++) this->
spin[i] = 0.;
1644 for(j=0; j<
int(N); j++) {
1645 this->
hrss[j+
N] = 0.;
1648 this->time[j+
N] = 0.;
1657 if(this->
fP!=NULL) {
1658 fprintf(
fP,
"\n# trigger %d in lag %d for \n",
int(ID),
int(n));
1660 vP = &(net->
wc_List[
n].p_Map[ID-1]);
1661 vI = &(net->
wc_List[
n].p_Ind[ID-1]);
1665 fprintf(
fP,
"map_lenght: %d\n",
int(vP->size()));
1666 fprintf(
fP,
"#skyID theta DEC step phi R.A step probability cumulative\n");
1668 for(j=0; j<
int(vP->size()); j++) {
1671 x = (j==
int(vP->size())-1) ? 0 : x+(*vP)[
j];
1673 fprintf(
fP,
"%6d %5.1f %5.1f %6.2f %5.1f %5.1f %6.2f %e %e\n",
1680 if(waveTree!=NULL && net->
wc_List[n].p_Map.size()) {
1682 vP = &(net->
wc_List[
n].p_Map[ID-1]);
1683 vI = &(net->
wc_List[
n].p_Ind[ID-1]);
1691 for(j=0; j<
int(vP->size()); j++) {
1693 th = Psm->getTheta(i);
1695 k=Psm->getSkyIndex(th, ra);
1696 Psm->set(k,(*vP)[j]);
1701 if(waveTree!=NULL) waveTree->Fill();
std::vector< char * > ifoName
detector * getifo(size_t n)
param: detector index
Float_t * mass
effective range for each detector
size_t append(const wavearray< DataType_t > &)
virtual void resize(unsigned int)
Float_t * eBBH
chirp array: 0-injmass,1-recmass,2-merr,3-tmrgr,4-terr,5-chi2
Double_t * time
beam pattern coefficients for hx
Int_t ndim
current Tree number in a TChain
Float_t * rho
biased null statistics
Float_t * high
min frequency
std::vector< netcluster > wc_List
void setSLags(float *slag)
Double_t * start
cluster duration = stopW-startW
std::vector< double > * getmdcTime()
virtual void rate(double r)
Float_t * duration
max cluster time relative to segment start
Float_t * low
average center_of_snr frequency
wavearray< double > a(hp.size())
string * log
event name: "" - prod, mdc_name - sim
Int_t * size
cluster volume
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<< "\ 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
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
Float_t * gap
cluster union size
std::vector< vector_float > sArea
string getmdcType(size_t n)
Float_t * left
min cluster time relative to segment start
double getTheta(size_t i)
Float_t * ioSNR
reconstructed snr waveform
Float_t * iota
source psi angle
string getmdcList(size_t n)
double getThetaStep(size_t i)
TTree * Init(TString fName, int n)
double getPhiStep(size_t i)
std::vector< double > oSNR[NIFO_MAX]
virtual void start(double s)
bool getMRAwave(size_t ID, size_t lag, char atype='S', int mode=0, bool tof=false)
std::vector< detector * > ifoList
std::vector< double > ioSNR[NIFO_MAX]
Float_t * theta
source phi angle
network ** net
NOISE_MDC_SIMULATION.
Int_t run
max size used by allocate() for the probability maps
fprintf(stdout,"start=%f duration=%f rate=%f\, x.start(), x.size()/x.rate(), x.rate())
virtual size_t size() const
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)
Int_t Psave
number of detectors
Double_t * hrss
estimated bandwidth
Int_t * volume
1/rate - wavelet time resolution
Double_t * gps
average center_of_gravity time
Double_t * stop
GPS start time of the cluster.
Float_t gnet
network energy disbalance: 0 - total, 1 - 00-phase, 2 - 90-phase
Float_t * lag
time between consecutive events
Float_t * mass
detector specific effective distance
Float_t * xSNR
energy/noise_variance
std::vector< double > iSNR[NIFO_MAX]
std::vector< detector * > ifoList
dump file
void Show(Int_t entry=-1)
Double_t * strain
time slag [sec]
Float_t * netcc
effective correlated SNR
void Dump(WSeries< double > &w, double t1, double t2, const char *fname)
Float_t * slag
time lag [sec]
void output(TTree *=NULL, network *=NULL, double=0., size_t=0, int=-1)
wavearray< double > lagShift
Float_t * phi
source iota angle
Float_t * iota
[0]-reconstructed psi or phase of gc, [1]-injected psi angle
Float_t * psi
[0]-reconstructed, [1]-injected theta angle, [2]-DEC
Float_t * phi
sqrt(h+*h+ + hx*hx)
Float_t * theta
[0]-reconstructed, [1]-injected phi angle, [2]-RA
Double_t * time
beam pattern coefficients for hx
Int_t * rate
event log: "" - prod, mdc_log - sim
WSeries< double > * getTFmap()
param: no parameters
double getNDM(size_t i, size_t j)
param: first detector param: second detector
double fabs(const Complex &x)
Float_t * nill
un-biased null statistics
Float_t * spin
mass[2], binary mass parameters
Float_t * sSNR
data-signal correlation Xk*Sk
Float_t * null
probability cc skymap
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)
std::vector< clusterdata > cData
virtual netevent & operator=(const netevent &)
string * name
event type: [0] - prod, [1]-sim
Float_t * snr
spin[6], binary spin parameters
double get(size_t i)
param: sky index
Bool_t fill_in(network *, int, bool=true)
Float_t * neted
network correlation coefficients: 0-net,1-pc,2-cc,3-net2
size_t getmdc__ID(size_t n)
for(int i=0;i< 101;++i) Cos2[2][i]=0
pointers to detectors
wavearray< double > ** pwf
[x1,y1,z1,x2,y2,z2] components of spin vector
virtual void resize(unsigned int)
bool setndm(size_t, size_t, bool=true, int=1)
param: cluster ID param: lag index param: statistic identificator param: resolution idenificator retu...
Float_t * spin
[m1,m2], binary mass parameters
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
Float_t * bp
[0]-reconstructed iota angle, [1]-injected iota angle
Float_t * iSNR
energy of reconstructed responses Sk*Sk
Int_t * eventID
event count
Float_t * bandwidth
max frequency
Int_t usize
cluster size (black pixels only)
Float_t * oSNR
injected snr waveform