21 #pragma GCC system_header 28 #include "TObjArray.h" 29 #include "TObjString.h" 81 if(!gOPT.enabled)
return;
84 cout <<
"-----> CWB_Plugin_UniqueLags.C ";
85 cout <<
"type " << type << endl;
95 if(cfg->
simulation) {cout <<
"CWB_Plugin_UniqueLags.C : Error - works only for background" << endl; gSystem->Exit(1);}
96 if(cfg->
nIFO<2 || cfg->
nIFO>4) {cout <<
"CWB_Plugin_UniqueLags.C : Error - implemented only for 2/3/4 ifos network" << endl; gSystem->Exit(1);}
100 TArrayC* lagBuffer = &(gCWB2G->
lagBuffer);
106 lagMax = lagMax-lagMax%2;
109 lagMax = lagMax-lagMax%3;
110 lagMax = lagMax-lagMax%2;
115 lagSize = gOPT.lagSize;
119 cout << endl <<
"CWB_Plugin_UniqueLags.C : segLen -> " << segLen <<
" lagMax " << lagMax <<
" lagSize " << lagSize << endl << endl;
122 std::stringstream buffer;
123 std::streambuf * old = std::cout.rdbuf(buffer.rdbuf());
127 cout << 0 <<
"\t" << 0 <<
"\t" << 0 << endl;
128 std::vector<int>
v[1];
132 cout <<
i <<
"\t" << lag0 <<
"\t" << lag1 << endl;
133 v[0].push_back(lag1-lag0);
135 for(
int k=0;
k<1;
k++) {
136 sort(v[
k].begin(), v[
k].end());
137 auto it = std::unique(v[
k].begin(), v[
k].end());
138 if(!(it == v[
k].end())) {cout <<
"CWB_Plugin_UniqueLags.C : Error - Duplicate Lags" << endl; gSystem->Exit(1);}
142 cout << 0 <<
"\t" << 0 <<
"\t" << 0 <<
"\t" << 0 << endl;
143 std::vector<int>
v[3];
147 int lag2 = (
i*2)%lagSize;
148 cout <<
i <<
"\t" << lag0 <<
"\t" << lag1 <<
"\t" << lag2 << endl;
149 v[0].push_back(lag1-lag0);
150 v[1].push_back(lag2-lag0); v[2].push_back(lag2-lag1);
152 for(
int k=0;
k<3;
k++) {
153 sort(v[
k].begin(), v[
k].end());
154 auto it = std::unique(v[
k].begin(), v[
k].end());
155 if(!(it == v[
k].end())) {cout <<
"CWB_Plugin_UniqueLags.C : Error - Duplicate Lags" << endl; gSystem->Exit(1);}
159 cout << 0 <<
"\t" << 0 <<
"\t" << 0 <<
"\t" << 0 <<
"\t" << 0 << endl;
160 std::vector<int>
v[6];
164 int lag2 = (
i*2)%lagSize;
165 int lag3 = (
i*3)%lagSize;
166 cout <<
i <<
"\t" << lag0 <<
"\t" << lag1 <<
"\t" << lag2 <<
"\t" << lag3 << endl;
167 v[0].push_back(lag1-lag0);
168 v[1].push_back(lag2-lag0); v[2].push_back(lag2-lag1);
169 v[3].push_back(lag3-lag0); v[4].push_back(lag3-lag1); v[5].push_back(lag3-lag2);
171 for(
int k=0;
k<6;
k++) {
172 sort(v[
k].begin(), v[
k].end());
173 auto it = std::unique(v[
k].begin(), v[
k].end());
174 if(!(it == v[
k].end())) {cout <<
"CWB_Plugin_UniqueLags.C : Error - Duplicate Lags" << endl; gSystem->Exit(1);}
179 std::cout.rdbuf(old);
182 lagBuffer->Set(buffer.str().size(),buffer.str().c_str());
184 lagBuffer->Set(lagBuffer->GetSize()+1);
185 (*lagBuffer)[lagBuffer->GetSize()-1]=0;
197 if(options.CompareTo(
"")!=0) {
198 cout << options << endl;
199 if(!options.Contains(
"--")) {
202 for(
int j=0;
j<token->GetEntries();
j++){
204 TObjString* tok = (TObjString*)token->At(
j);
205 TString stok = tok->GetString();
207 if(stok.Contains(
"ulags_enabled=")) {
209 ulags_enabled.Remove(0,ulags_enabled.Last(
'=')+1);
210 if(ulags_enabled==
"true") gOPT.enabled=
true;
211 if(ulags_enabled==
"false") gOPT.enabled=
false;
214 if(stok.Contains(
"ulags_lagSize=")) {
216 ulags_lagSize.Remove(0,ulags_lagSize.Last(
'=')+1);
217 if(ulags_lagSize.IsDigit()) gOPT.lagSize=ulags_lagSize.Atoi();
218 if((gOPT.lagSize%2)==0) {
219 cout <<
"ReadUserOptions Error : ulags_lagSize = " << gOPT.lagSize <<
" must be odd" << endl;
exit(1);
229 cout <<
"-----------------------------------------" << endl;
230 cout <<
"UniqueLags config options " << endl;
231 cout <<
"-----------------------------------------" << endl << endl;
232 if(gOPT.enabled==
false) cout <<
"ULAGS_ENABLED = false" << endl;
233 if(gOPT.enabled==
true) cout <<
"ULAGS_ENABLED = true " << endl;
234 cout <<
"ULAGS_LAG_SIZE = " << gOPT.lagSize << endl;
std::vector< char * > ifoName
void PrintUserOptions(CWB::config *cfg)
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
network ** net
NOISE_MDC_SIMULATION.
void CWB_Plugin(TFile *jfile, CWB::config *cfg, network *net, WSeries< double > *x, TString ifo, int type)
COHERENCE.
void ReadUserOptions(TString options)
#define IMPORT(TYPE, VAR)
void ResetUserOptions(network *net, CWB::config *cfg)