KaliVeda
Toolkit for HIC analysis
KVDigitalFilter Class Reference

Detailed Description

Definition at line 15 of file KVDigitalFilter.h.

#include <KVDigitalFilter.h>

Inheritance diagram for KVDigitalFilter:

Public Member Functions

 KVDigitalFilter (const double &tau, int N, const double *Xcoeffs, const double *Ycoeffs)
 
 KVDigitalFilter (const double &tau=10)
 
 KVDigitalFilter (const KVDigitalFilter &)
 
virtual ~ KVDigitalFilter ()
 
void Alloc (const int Ncoeff)
 printf("a=%p, N=%d, Ncoeff=%d\n", a, N, Ncoeff); More...
 
void ApplyTo (double *data, const int N, int reverse=0) const
 
void ApplyTo (float *data, const int N, int reverse=0) const
 
void ApplyTo (int *data, const int N, int reverse=0) const
 
void ApplyTo (KVSignal *s, int reverse=0) const
 
void Azzera ()
 
void Compress ()
 shorten filter. No deallocation of memory. More...
 
double ComputeGainDC ()
 
double ComputeGainNy ()
 
virtual void Draw (Option_t *option="")
 
void FIRApplyTo (double *datax, const int NSamples, int reverse) const
 
void FIRApplyTo (float *datax, const int NSamples, int reverse) const
 
void FIRApplyTo (KVSignal *s, int reverse=0) const
 
int GetNCoeff ()
 
const double & GetTauClk ()
 
double * GetXarray ()
 
const double & GetXcoeff (int i) const
 
double * GetYarray ()
 
const double & GetYcoeff (int i) const
 
void Multiply (double v)
 
KVDigitalFilter operator= (const KVDigitalFilter &)
 
void PrintCoeffs () const
 
void PrintCoeffs_AsC () const
 
void PrintCoeffsDSP () const
 
void Quantize (int nbits, int use_pow2=0, double *xgain=NULL, int *x_out=NULL, int *y_out=NULL, int *x_scale=NULL, int *y_scale=NULL)
 
int ReadMatlabFIR (char *filecoeff)
 FILE *fin = fopen("notch_coeffs.txt","r");. More...
 
void SetXcoeff (int i, const double &val)
 
void SetYcoeff (int i, const double &val)
 
int WriteMatlabFIR (char *filecoeff)
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
virtual ~ KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
virtual void Copy (TObject &) const
 Make a copy of this object. More...
 
const Char_t * GetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObject * GetObject () const
 
virtual const Char_t * GetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator More...
 
virtual void Print (Option_t *option="") const
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 

Static Public Member Functions

static KVDigitalFilter BuildChebyshev (const double &freq_cutoff_mhz, int is_highpass, const double &percent_ripple, int npoles, const double &tau_clk)
 
static KVDigitalFilter BuildIntegrator (const double &tau_clk)
 
static KVDigitalFilter BuildInverse (KVDigitalFilter *filter)
 ‍**************************************‍/ More...
 
static KVDigitalFilter BuildRCHighPass (const double &tau_usec, const double &tau_clk)
 
static KVDigitalFilter BuildRCHighPassWithPZ (const double &tau_usec, const double &preamp_decay_usec, const double &tau_clk)
 
static KVDigitalFilter BuildRCLowPass (const double &tau_usec, const double &tau_clk)
 
static KVDigitalFilter BuildRCLowPassDeconv (const double &tau_usec, const double &tau_clk)
 
static KVDigitalFilter BuildUnity (const double &tau_clk)
 
static KVDigitalFilter CombineStages (const KVDigitalFilter &f1, const KVDigitalFilter &f2, int parallel=0)
 
static KVDigitalFilter CombineStages (const KVDigitalFilter *f1, const KVDigitalFilter *f2, int parallel=0)
 
static KVDigitalFilter CombineStagesMany (const KVDigitalFilter *f1, const KVDigitalFilter *f2, const KVDigitalFilter *f3=NULL, const KVDigitalFilter *f4=NULL, const KVDigitalFilter *f5=NULL, const KVDigitalFilter *f6=NULL, const KVDigitalFilter *f7=NULL, const KVDigitalFilter *f8=NULL, const KVDigitalFilter *f9=NULL, const KVDigitalFilter *f10=NULL)
 se ne devi combinare + di 1 IN CASCATA! More...
 
static int Double2DSP (const double &val)
 – conversion to/from DSP 1.15? notation More...
 
static double DSP2Double (const int val)
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values. More...
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_t * FindFile (const Char_t *search, TString &wfil)
 
static const Char_t * GetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetDATABASEFilePath ()
 
static const Char_t * GetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_t * GetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_t * GetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_t * GetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_t * GetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_t * GetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_t * GetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_t * GetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_t * GetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_t * GetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_t * GetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetListOfPlugins (const Char_t *base)
 
static const Char_t * GetListOfPluginURIs (const Char_t *base)
 
static const Char_t * GetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_t * GetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_t * gitBranch ()
 Returns git branch of sources. More...
 
static const Char_t * gitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandler * LoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc. More...
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_t * WorkingDirectory ()
 

Static Private Member Functions

static void ComputeChebyshevCoeffs (const double &freq_cutoff, int is_highpass, const double &percent_ripple, int npoles, double *a, double *b)
 
static void ComputeChebyshevCoeffs_serv (const double &fc, const double &lh, const double &pr, const double &np, int p, double *a0, double *a1, double *a2, double *b1, double *b2)
 

Private Attributes

double * a
 coefficients. More...
 
double * b
 
int Ncoeff
 
double tau_clk
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 

Constructor & Destructor Documentation

◆ KVDigitalFilter() [1/3]

KVDigitalFilter::KVDigitalFilter ( const double &  tau = 10)

Definition at line 324 of file KVDigitalFilter.cpp.

◆ KVDigitalFilter() [2/3]

KVDigitalFilter::KVDigitalFilter ( const double &  tau,
int  N,
const double *  Xcoeffs,
const double *  Ycoeffs 
)

Definition at line 337 of file KVDigitalFilter.cpp.

◆ KVDigitalFilter() [3/3]

KVDigitalFilter::KVDigitalFilter ( const KVDigitalFilter orig)

Definition at line 403 of file KVDigitalFilter.cpp.

◆ ~ KVDigitalFilter()

virtual KVDigitalFilter::~ KVDigitalFilter ( )
virtual

Member Function Documentation

◆ Alloc()

void KVDigitalFilter::Alloc ( const int  Ncoeff)

printf("a=%p, N=%d, Ncoeff=%d\n", a, N, Ncoeff);

Definition at line 368 of file KVDigitalFilter.cpp.

◆ ApplyTo() [1/4]

void KVDigitalFilter::ApplyTo ( double *  datax,
const int  NSamples,
int  reverse = 0 
) const

Copiato +- da KVSignal.cxx Diversa la convenzione per a0 b0!

Definition at line 441 of file KVDigitalFilter.cpp.

◆ ApplyTo() [2/4]

void KVDigitalFilter::ApplyTo ( float *  datax,
const int  NSamples,
int  reverse = 0 
) const

Copiato +- da KVSignal.cxx Diversa la convenzione per a0 b0!

Definition at line 496 of file KVDigitalFilter.cpp.

◆ ApplyTo() [3/4]

void KVDigitalFilter::ApplyTo ( int *  datax,
const int  NSamples,
int  reverse = 0 
) const

Copiato +- da KVSignal.cxx Diversa la convenzione per a0 b0!

Definition at line 549 of file KVDigitalFilter.cpp.

◆ ApplyTo() [4/4]

void KVDigitalFilter::ApplyTo ( KVSignal s,
int  reverse = 0 
) const
inline

Definition at line 137 of file KVDigitalFilter.h.

◆ Azzera()

void KVDigitalFilter::Azzera ( )

Definition at line 391 of file KVDigitalFilter.cpp.

◆ BuildChebyshev()

KVDigitalFilter KVDigitalFilter::BuildChebyshev ( const double &  freq_cutoff_mhz,
int  is_highpass,
const double &  percent_ripple,
int  npoles,
const double &  tau_clk 
)
static

Definition at line 155 of file KVDigitalFilter.cpp.

◆ BuildIntegrator()

KVDigitalFilter KVDigitalFilter::BuildIntegrator ( const double &  tau_clk)
static

Definition at line 784 of file KVDigitalFilter.cpp.

◆ BuildInverse()

KVDigitalFilter KVDigitalFilter::BuildInverse ( KVDigitalFilter filter)
static

‍**************************************‍/

Definition at line 1036 of file KVDigitalFilter.cpp.

◆ BuildRCHighPass()

KVDigitalFilter KVDigitalFilter::BuildRCHighPass ( const double &  tau_usec,
const double &  tau_clk 
)
static

Definition at line 137 of file KVDigitalFilter.cpp.

◆ BuildRCHighPassWithPZ()

KVDigitalFilter KVDigitalFilter::BuildRCHighPassWithPZ ( const double &  tau_usec,
const double &  preamp_decay_usec,
const double &  tau_clk 
)
static

Definition at line 124 of file KVDigitalFilter.cpp.

◆ BuildRCLowPass()

KVDigitalFilter KVDigitalFilter::BuildRCLowPass ( const double &  tau_usec,
const double &  tau_clk 
)
static

Definition at line 90 of file KVDigitalFilter.cpp.

◆ BuildRCLowPassDeconv()

KVDigitalFilter KVDigitalFilter::BuildRCLowPassDeconv ( const double &  tau_usec,
const double &  tau_clk 
)
static

Definition at line 107 of file KVDigitalFilter.cpp.

◆ BuildUnity()

KVDigitalFilter KVDigitalFilter::BuildUnity ( const double &  tau_clk)
static

Definition at line 772 of file KVDigitalFilter.cpp.

◆ CombineStages() [1/2]

KVDigitalFilter KVDigitalFilter::CombineStages ( const KVDigitalFilter f1,
const KVDigitalFilter f2,
int  parallel = 0 
)
static

Definition at line 659 of file KVDigitalFilter.cpp.

◆ CombineStages() [2/2]

KVDigitalFilter KVDigitalFilter::CombineStages ( const KVDigitalFilter f1,
const KVDigitalFilter f2,
int  parallel = 0 
)
static

Definition at line 670 of file KVDigitalFilter.cpp.

◆ CombineStagesMany()

KVDigitalFilter KVDigitalFilter::CombineStagesMany ( const KVDigitalFilter f1,
const KVDigitalFilter f2,
const KVDigitalFilter f3 = NULL,
const KVDigitalFilter f4 = NULL,
const KVDigitalFilter f5 = NULL,
const KVDigitalFilter f6 = NULL,
const KVDigitalFilter f7 = NULL,
const KVDigitalFilter f8 = NULL,
const KVDigitalFilter f9 = NULL,
const KVDigitalFilter f10 = NULL 
)
static

se ne devi combinare + di 1 IN CASCATA!

se ne devi combinare + di 1 IN CASCATA! per fare parallelo usare l'altro...

Definition at line 636 of file KVDigitalFilter.cpp.

◆ Compress()

void KVDigitalFilter::Compress ( )

shorten filter. No deallocation of memory.

Definition at line 601 of file KVDigitalFilter.cpp.

◆ ComputeChebyshevCoeffs()

void KVDigitalFilter::ComputeChebyshevCoeffs ( const double &  freq_cutoff,
int  is_highpass,
const double &  percent_ripple,
int  npoles,
double *  a,
double *  b 
)
staticprivate

Definition at line 242 of file KVDigitalFilter.cpp.

◆ ComputeChebyshevCoeffs_serv()

void KVDigitalFilter::ComputeChebyshevCoeffs_serv ( const double &  fc,
const double &  lh,
const double &  pr,
const double &  np,
int  p,
double *  a0,
double *  a1,
double *  a2,
double *  b1,
double *  b2 
)
staticprivate

printf("rp=%e ip=%e\n",rp,ip);

Definition at line 172 of file KVDigitalFilter.cpp.

◆ ComputeGainDC()

double KVDigitalFilter::ComputeGainDC ( )

Gain of filter at f=0 eq. 33.7 del solito libro

Definition at line 737 of file KVDigitalFilter.cpp.

◆ ComputeGainNy()

double KVDigitalFilter::ComputeGainNy ( )

Gain of filter at f=Nyquist (0.5) eq. 33.8 del solito libro

Definition at line 755 of file KVDigitalFilter.cpp.

◆ Double2DSP()

static int KVDigitalFilter::Double2DSP ( const double &  val)
inlinestatic

– conversion to/from DSP 1.15? notation

Definition at line 51 of file KVDigitalFilter.h.

◆ Draw()

void KVDigitalFilter::Draw ( Option_t *  option = "")
virtual

Definition at line 974 of file KVDigitalFilter.cpp.

◆ DSP2Double()

static double KVDigitalFilter::DSP2Double ( const int  val)
inlinestatic

Definition at line 55 of file KVDigitalFilter.h.

◆ FIRApplyTo() [1/3]

void KVDigitalFilter::FIRApplyTo ( double *  datax,
const int  NSamples,
int  reverse 
) const

Copiato +- da KVSignal.cxx Diversa la convenzione per a0 b0!

Definition at line 1165 of file KVDigitalFilter.cpp.

◆ FIRApplyTo() [2/3]

void KVDigitalFilter::FIRApplyTo ( float *  datax,
const int  NSamples,
int  reverse 
) const

Copiato +- da KVSignal.cxx Diversa la convenzione per a0 b0!

Definition at line 1114 of file KVDigitalFilter.cpp.

◆ FIRApplyTo() [3/3]

void KVDigitalFilter::FIRApplyTo ( KVSignal s,
int  reverse = 0 
) const
inline

Definition at line 146 of file KVDigitalFilter.h.

◆ GetNCoeff()

int KVDigitalFilter::GetNCoeff ( )
inline

Definition at line 127 of file KVDigitalFilter.h.

◆ GetTauClk()

const double& KVDigitalFilter::GetTauClk ( )
inline

Definition at line 123 of file KVDigitalFilter.h.

◆ GetXarray()

double* KVDigitalFilter::GetXarray ( )
inline

Definition at line 113 of file KVDigitalFilter.h.

◆ GetXcoeff()

const double& KVDigitalFilter::GetXcoeff ( int  i) const
inline

Definition at line 85 of file KVDigitalFilter.h.

◆ GetYarray()

double* KVDigitalFilter::GetYarray ( )
inline

Definition at line 117 of file KVDigitalFilter.h.

◆ GetYcoeff()

const double& KVDigitalFilter::GetYcoeff ( int  i) const
inline

Definition at line 91 of file KVDigitalFilter.h.

◆ Multiply()

void KVDigitalFilter::Multiply ( double  v)
inline

Definition at line 79 of file KVDigitalFilter.h.

◆ operator=()

KVDigitalFilter KVDigitalFilter::operator= ( const KVDigitalFilter orig)

Definition at line 422 of file KVDigitalFilter.cpp.

◆ PrintCoeffs()

void KVDigitalFilter::PrintCoeffs ( ) const

Definition at line 796 of file KVDigitalFilter.cpp.

◆ PrintCoeffs_AsC()

void KVDigitalFilter::PrintCoeffs_AsC ( ) const

Definition at line 848 of file KVDigitalFilter.cpp.

◆ PrintCoeffsDSP()

void KVDigitalFilter::PrintCoeffsDSP ( ) const

Definition at line 821 of file KVDigitalFilter.cpp.

◆ Quantize()

void KVDigitalFilter::Quantize ( int  nbits,
int  use_pow2 = 0,
double *  xgain = NULL,
int *  x_out = NULL,
int *  y_out = NULL,
int *  x_scale = NULL,
int *  y_scale = NULL 
)

virtual void DrawResponse(Option_t* option=""); // DRAW signal virtual void DrawStepResponse(Option_t* option=""); // DRAW signal

if(stampa) printf("x gain factor: %e\n",factor);

printf("%d: k=%d %p\n",i,k,k);

Definition at line 866 of file KVDigitalFilter.cpp.

◆ ReadMatlabFIR()

int KVDigitalFilter::ReadMatlabFIR ( char *  filecoeff)

FILE *fin = fopen("notch_coeffs.txt","r");.

Definition at line 1057 of file KVDigitalFilter.cpp.

◆ SetXcoeff()

void KVDigitalFilter::SetXcoeff ( int  i,
const double &  val 
)
inline

Definition at line 97 of file KVDigitalFilter.h.

◆ SetYcoeff()

void KVDigitalFilter::SetYcoeff ( int  i,
const double &  val 
)
inline

Definition at line 105 of file KVDigitalFilter.h.

◆ WriteMatlabFIR()

int KVDigitalFilter::WriteMatlabFIR ( char *  filecoeff)

Definition at line 1090 of file KVDigitalFilter.cpp.

Member Data Documentation

◆ a

double* KVDigitalFilter::a
private

coefficients.

Definition at line 174 of file KVDigitalFilter.h.

◆ b

double* KVDigitalFilter::b
private

Definition at line 175 of file KVDigitalFilter.h.

◆ Ncoeff

int KVDigitalFilter::Ncoeff
private

Definition at line 176 of file KVDigitalFilter.h.

◆ tau_clk

double KVDigitalFilter::tau_clk
private

Definition at line 178 of file KVDigitalFilter.h.