Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

TDSPConvolution.h

Go to the documentation of this file.
00001 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef TDSPCONVOLUTION_H
00019 #define TDSPCONVOLUTION_H
00020 
00021 #include <TDSPSignal.h>
00022 #include <TDSPStochasticSignal.h>
00023 #include <TDSPBlockOperation.h>
00024 #include <TDSPOutput1.h>
00025 
00030 class TDSPConvolution : public TDSPOutput1, public TDSPBlockOperation {
00031   
00032  protected:
00033 
00034   Int_t   fBlockLen;
00035   Int_t   fConvOptions;
00036 
00037   // my Slots
00038 
00039   TString Slot_Response;
00040   TString Slot_StochasticResponse;
00041 
00042 
00043  public: 
00044 
00045   // the inputs
00046 
00047   TDSPVector           *ResponseFunction; 
00048   TDSPStochasticSignal *StochasticResponseFunction;
00049 
00050 
00051   TDSPConvolution(char *name = NULL);
00052   ~TDSPConvolution();
00053 
00054   
00055   // Slots
00056 
00057   void Response(TDSPVector *r) { 
00058     StochasticResponseFunction = NULL;
00059     ResponseFunction = r;
00060     Emit("Response(TDSPVector*)",r);
00061   };          
00062   
00063   void Response(TDSPStochasticSignal *r) { 
00064     ResponseFunction = NULL;
00065     StochasticResponseFunction=r;
00066   };          
00067 
00068   void  SetOption(Option_t *opt);
00069   void  SetBlockLen(Int_t b) { fBlockLen = b;};
00070   Int_t GetBlockLen() { return fBlockLen;};
00071   
00072   TDSPVector*   Conv(TDSPVector *input);
00073   TDSPSignal*   Update(TDSPSignal *input);
00074              
00075 
00076   ClassDef(TDSPConvolution,1)
00077 
00078 };
00079 
00080 inline TDSPSignal* TDSPConvolution::Update(TDSPSignal *input) {
00081   this->Conv(input);
00082   Emit(Signal_NewData,fSignal);
00083   return fSignal;
00084 }
00085 #endif

Generated on Fri Apr 23 16:23:43 2004 by doxygen 1.3.2