85 template<
class DataType_t>
91 template<
class DataType_t>
96 template<
class DataType_t>
101 template<
class DataType_t>
106 template<
class DataType_t>
111 template<
class DataType_t>
127 this->rate(pws->
rate());
136 cout <<
"SSeries::Init : Inconsistent index rate " << pws->
rate()
137 <<
" previously setted index rate : " << this->
rate() << endl;
141 cout <<
"SSeries::Init : Inconsistent maxLayer " << pws->
maxLayer()
142 <<
" previously setted maxLayer: " << this->
maxLayer() << endl;
146 cout <<
"SSeries::Init : Inconsistent nWWS " << pws->
size()
147 <<
" previously setted nWWS : " << this->
pWavelet->nWWS << endl;
151 cout <<
"SSeries::Init : Inconsistent start " << pws->
start()
152 <<
" previously setted start : " << this->
start() << endl;
156 cout <<
"SSeries::Init : Inconsistent time_Halo " << pws->
pWavelet->getTDFsize()
157 <<
" previously setted time_Halo : " << this->
time_Halo << endl;
185 template<
class DataType_t>
202 template<
class DataType_t>
218 cid = pwc->
get((
char*)
"ID",0,
'S',0);
221 for(
int ik=0; ik<
K; ik++) {
223 int id = size_t(cid.
data[ik]+0.1);
225 if(ID &&
id!=ID)
continue;
226 if(pwc->
sCuts[
id-1] == 1)
continue;
228 vector<int>* vint = &(pwc->
cList[
id-1]);
229 int V = vint->size();
232 for(
int l=0;
l<V;
l++) {
234 if(
int(pix->
rate+0.01)!=R)
continue;
235 index = (
int)pix->
data[ifoID].index;
236 core.SetBitNumber(index);
242 template<
class DataType_t>
275 template<
class DataType_t>
292 for(
int i=0;
i<nSlice;
i++) {
293 for(
int j=0;
j<nLayer;
j++) {
295 int ib =
i-hSlice<0 ? 0 :
i-hSlice;
296 int ie =
i+hSlice>nSlice-1 ? nSlice-1 :
i+hSlice;
298 int je =
j+layerHalo>nLayer-1 ? nLayer-1 :
j+
layerHalo;
299 for(
int ii=ib;ii<=ie;ii++)
300 for(
int jj=jb;jj<=je;jj++) {
301 cluster.SetBitNumber(ii*nLayer+jj);
307 int csize=cluster.CountBits();
316 for(
short j=0;
j<nLayer;
j++) {
318 for(
int i=0;
i<nSlice;
i++) {
321 if(cluster.TestBitNumber(index)) {
334 template<
class DataType_t>
344 template<
class DataType_t>
361 template<
class DataType_t>
374 cout <<
"SSeries<DataType_t>::GetSTFdata : Input Vector Error - wrong slice dimension" << endl;
375 cout <<
"Input dim : " << 2*pS[0].
Last()+1 <<
" Sparse TF slices : " << nS;
382 int je = layer+layerHalo>nLayer-1 ? nLayer-1 : layer+
layerHalo;
384 for(
int j=0;
j<nL;
j++) {
386 if(jp>=jb && jp<=je)
continue;
388 bzero(&pS[nL+
j][-
time_Halo],nS*
sizeof(
float));
391 for(
int j=jb;
j<=je;
j++) {
394 int key = index+(
j-
layer);
397 {cout <<
"SSeries<DataType_t>::GetSTFdata : index not present in sparse table" << endl;
exit(1);}
400 if((ib<start)||(ie>end)) {
401 cout <<
"SSeries<DataType_t>::GetSTFdata : Exceed TF map boundaries" << endl;
402 cout <<
"Check buffer scratch length : " <<
403 "probably it is non sufficient to get the correct number of samples" << endl;
408 memcpy(&pS[nL+jp][-time_Halo],&(
sparseMap90.
data[ib]),nS*
sizeof(
float));
414 template<
class DataType_t>
434 if(bcore && !
sparseType.TestBitNumber(
i))
continue;
442 template<
class DataType_t>
455 for(
int i=0;i<=this->
maxIndex();i++)
460 template<
class DataType_t>
465 int searchPos = (start + end) >> 1;
470 if (array[searchPos] > key)
473 if (array[searchPos] < key)
476 if (array[searchPos] == key)
481 template<
class DataType_t>
487 template<
class DataType_t>
493 if (R__b.IsReading()) {
494 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
if (R__v) { }
553 R__b.SetByteCount(R__c, kTRUE);
560 #define CLASS_INSTANTIATION(class_) template class SSeries< class_ >; short Core(int slice, int layer)
void SetMap00(int index, DataType_t value)
virtual double stop() const
virtual size_t getTDFsize()
float GetMap90(int index)
virtual void rate(double r)
std::vector< pixel > cluster
virtual void edge(double s)
wavearray< int > GetSparseIndex(bool bcore=true)
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\ layers : "<< nLAYERS<< "\ dF(hz) : "<< dF<< "\ dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1) *itime+ifreq;double time=itime *dT;double freq=(ifreq >0) ? ifreq *dF :dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
std::vector< pixdata > data
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...
WDM< double > wdm(nLAYERS, nLAYERS, 6, 10)
std::vector< vector_int > cList
virtual void start(double s)
wavearray< int > sparseIndex
virtual size_t size() const
bool GetSTFdata(int index, SymmArraySSE< float > *pS)
virtual double rate() const
void Init(WSeries< DataType_t > *pws=NULL, bool reset=true)
wavearray< int > sparseLookup
#define CLASS_INSTANTIATION(class_)
int GetSparseSize(bool bcore=true)
virtual double start() const
void SetMap90(int index, DataType_t value)
virtual double edge() const
netpixel * getPixel(size_t n, size_t i)
void Expand(bool bcore=true)
void CheckWaveletType(TString method)
void SetHalo(double maxTau=0.042, int lHalo=1, int tHalo=-1)
virtual void stop(double s)
wavearray< float > sparseMap00
wavearray< float > sparseMap90
float GetMap00(int index)
void Forward(int n=-1)
param: wavelet - n is number of steps (-1 means full decomposition)
void AddCore(size_t ifoID, netcluster *pwc, int ID=0)
WaveDWT< DataType_t > * pWavelet
virtual void resize(unsigned int)
int binarySearch(int array[], int start, int end, int key)