3 #pragma GCC system_header
10 #include "TObjArray.h"
11 #include "TObjString.h"
12 #include "TPaletteAxis.h"
13 #include "TMultiLayerPerceptron.h"
14 #include "TMLPAnalyzer.h"
74 TTree* nnTree2 =
new TTree (
"nnTree",
"nnTree");
76 nnTree2->SetDirectory(0);
82 for (
int jj=0; jj<nINP;jj++) x[jj]=0.;
83 char ilabel[nINP][16];
85 for (
int jj=0; jj<
NPIX;jj++) dt[jj]=0.;
86 char ilabeldt[
NPIX][16];
92 for(
int i=0;
i<nINP;
i++) {
94 char tlabel[16];
sprintf(tlabel,
"x%i/F",i+1);
95 nnTree2->Branch(ilabel[i], &x[i], tlabel);
101 char tlabeldt[16];
sprintf(tlabeldt,
"dt%i/D",i+1);
102 nnTree2->Branch(ilabeldt[i], &dt[i], tlabeldt);
105 nnTree2->Branch(
"duration", &dT,
"duration/D");
106 nnTree2->Branch(
"frequency_width", &dF,
"frequency_width/D");
107 nnTree2->Branch(
"central_frequency", &Fc,
"central_frequency/D");
111 nnTree2->Branch(
"type",&type,
"type/I");
120 nnTree2->Branch(
"amplitude_mode",&yi,
"amplitude_mode/I");
121 nnTree2->Branch(
"Matrix_dim",&nDim,
"Matrix_dim/I");
122 nnTree2->Branch(
"#inputs",&nInp,
"#inputs/I");
123 nnTree2->Branch(
"index",&index,
"index/I");
124 nnTree2->Branch(
"#Entries_type",&entriesTot,
"#Entries_type/I");
126 nnTree2->Branch(
"Files_name",&fname,
"Files_name/C");
129 char wlabel[nINP][16];
131 for(
int i=0;
i<nINP;
i++) {
133 char llabel[16];
sprintf(llabel,
"w%d/F",i+1);
134 nnTree2->Branch(ilabel[i], &w[i], tlabel);
140 nnTree2->Branch(
"w",&w,
"w/F");
144 cout<<
"fine definizione foglie"<<endl;
147 TChain TreeS(
"waveburst");
148 TreeS.Add(ifileS.Data());
151 cout <<
"Sig entries : " << entriesTot << endl;
152 std::vector<double>* frameS =
new vector<double>;
153 entryS.
fChain->SetBranchAddress(
"nnframe", &frameS);
154 std::vector<double>* dtvS =
new vector<double>;
155 entryS.
fChain->SetBranchAddress(
"dt_corepixels", &dtvS);
161 entryS.
fChain->SetBranchAddress(
"t_duration", &dTS);
162 entryS.
fChain->SetBranchAddress(
"f_duration", &dFS);
163 entryS.
fChain->SetBranchAddress(
"central_f", &FcS);
166 sprintf(fname,
"%s",ifileS.Data());
173 for (
int j=0;
j<
NPIX;
j++) dt[
j]=(*dtvS)[
j];
174 for (
int j=0;
j<nINP;
j++)
177 if((*frameS)[
j]>0.001) x[
j]=1;
181 else x[
j]=(*frameS)[
j];
187 cout<<
"Fine ciclo sul segnale"<<endl;
190 TChain TreeB(
"waveburst");
191 TreeB.Add(ifileB.Data());
194 cout <<
"Bg entries : " << entriesTot << endl;
195 std::vector<double>* frameB =
new vector<double>;
196 entryB.
fChain->SetBranchAddress(
"nnframe", &frameB);
197 std::vector<double>* dtvB =
new vector<double>;
198 entryB.
fChain->SetBranchAddress(
"dt_corepixels", &dtvB);
204 entryB.
fChain->SetBranchAddress(
"t_duration", &dTB);
205 entryB.
fChain->SetBranchAddress(
"f_duration", &dFB);
206 entryB.
fChain->SetBranchAddress(
"central_f", &FcB);
209 sprintf(fname,
"%s",ifileB.Data());
216 for (
int j=0;
j<
NPIX;
j++) dt[
j]=(*dtvB)[
j];
217 for (
int j=0;
j<nINP;
j++)
220 if((*frameB)[
j]>0.001) x[
j]=1;
224 else x[
j]=(*frameB)[
j];
230 cout<<
"fine ciclo sul Bg"<<endl;
239 sprintf(nomefile,
"nnTREE/nnTree_%s.root",ofile.Data());
241 TFile*
f=
new TFile(nomefile,
"RECREATE");
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
void TreeTest_CTFmod(TString ifileS, TString ifileB, TString ofile, int const y=1, int const NDIM=8, int const nINP=64)
TTree * fChain
root input file cointainig the analyzed TTree
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)