@@ -45,17 +45,15 @@ class IDCFourierTransform : public IDCFourierTransformBase<Type>
4545 template <bool IsEnabled = true , typename std::enable_if<(IsEnabled && (std::is_same<Type, IDCFourierTransformBaseAggregator>::value)), int >::type = 0 >
4646 IDCFourierTransform (const unsigned int rangeIDC = 200 , const unsigned int nFourierCoefficientsStore = 200 + 2 ) : IDCFourierTransformAggregator(rangeIDC), mFourierCoefficients {1 , nFourierCoefficientsStore}, mVal1DIDCs (sNThreads ), mCoefficients (sNThreads )
4747 {
48- initFFTW3Members ();
49- };
48+ }
5049
5150 // / constructor for EPN type
5251 // / \param rangeIDC number of IDCs for each interval which will be used to calculate the fourier coefficients
5352 // / \param nFourierCoefficientsStore number of courier coefficients (real+imag) which will be stored (the maximum can be 'rangeIDC + 2', should be an even number when using naive FT). If less than maximum is setn the inverse fourier transform will not work.
5453 template <bool IsEnabled = true , typename std::enable_if<(IsEnabled && (std::is_same<Type, IDCFourierTransformBaseEPN>::value)), int >::type = 0 >
5554 IDCFourierTransform (const unsigned int rangeIDC = 200 , const unsigned int nFourierCoefficientsStore = 200 + 2 ) : IDCFourierTransformEPN(rangeIDC), mFourierCoefficients {1 , nFourierCoefficientsStore}, mVal1DIDCs (sNThreads ), mCoefficients (sNThreads )
5655 {
57- initFFTW3Members ();
58- };
56+ }
5957
6058 // Destructor
6159 ~IDCFourierTransform ();
@@ -72,6 +70,9 @@ class IDCFourierTransform : public IDCFourierTransformBase<Type>
7270 sNThreads = nThreads;
7371 }
7472
73+ // / initalizing fftw members, e.g. when changing sNThreads via setNThreads after first initialization
74+ void initFFTW3Members ();
75+
7576 // / calculate fourier coefficients for one TPC side
7677 template <bool IsEnabled = true , typename std::enable_if<(IsEnabled && (std::is_same<Type, IDCFourierTransformBaseAggregator>::value)), int >::type = 0 >
7778 void calcFourierCoefficients (const unsigned int timeFrames = 2000 )
@@ -155,9 +156,6 @@ class IDCFourierTransform : public IDCFourierTransformBase<Type>
155156 // / \return returns maximum numbers of stored real/imag fourier coeffiecients
156157 unsigned int getNMaxCoefficients () const { return this ->mRangeIDC / 2 + 1 ; }
157158
158- // / initalizing fftw members
159- void initFFTW3Members ();
160-
161159 // / performing of ft using FFTW
162160 void fftwLoop (const std::vector<float >& idcOneExpanded, const std::vector<unsigned int >& offsetIndex, const unsigned int interval, const unsigned int thread);
163161
0 commit comments