1 #include "ImpulsivityMeasure.h" 2 #include "AnalysisWaveform.h" 8 double impulsivity::impulsivityMeasure(
const AnalysisWaveform * wf, TGraph * distance_cdf,
int pt,
bool hilbert)
15 g->peakVal(&pt,0,-1,
true);
18 int N = TMath::Max(pt+1, wf->
Neven()-pt+1);
20 if (distance_cdf) distance_cdf->Set(N);
23 double total = g->getSumV2();
27 double v= g->GetY()[pt];
31 distance_cdf->GetX()[0] = 0;
32 distance_cdf->GetY()[0] = sumv2/total;
40 if (pt+i < wf->Neven())
54 distance_cdf->GetY()[i] = sumv2 / total;
55 distance_cdf->GetX()[i] = i * wf->
deltaT();
62 return 2 * ysum / (N*total)-1;
67 TH2* impulsivity::envelopogram(
const AnalysisWaveform * wf, TH2 * out,
int min,
int max,
int step,
bool hilbert)
73 if (min < 0) min =-min;
74 if (max < 0) max =-max;
75 if (step < 0) step =-step;
78 if (min > max) std::swap(min,max);
88 out->SetBins(wf->
Neven(),
95 out =
new TH2D(
"envelopogram",
"Envelopogram",
97 (max-min)/step+1, min,max);
99 out->SetDirectory(0) ;
103 for (
int i = 0; i< wf->
Neven(); i++)
110 while (abs(j) <= max)
113 if (ii >=0 && ii < wf->Neven())
122 if ((j+1) >= min && ((j+1)-min) % step == 0)
124 out->SetBinContent(i,ybin++, sqrt(2*sumv2/navg));