LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
LArFFTWPlan.h
Go to the documentation of this file.
1 #ifndef LARFFTWPLAN_H
2 #define LARFFTWPLAN_H
3 
4 // C/C++ standard libraries
5 #include <algorithm>
6 #include <mutex>
7 #include <string>
8 
9 #include "fftw3.h"
10 
11 namespace util {
12 
13  class LArFFTWPlan {
14 
15  public:
16  LArFFTWPlan(int transformSize, const std::string& option);
17  ~LArFFTWPlan();
18  void* fPlan;
19  void* rPlan;
20  void* fIn;
21  void* fOut;
22  void* rIn;
23  void* rOut;
24 
25  private:
26  static std::mutex mutex_;
27  int fSize; // size of transform
28  int fFreqSize; // size of frequency space
29  int* fN;
30  std::string fOption; // FFTW setting
31 
32  unsigned int MapFFTWOption();
33  };
34 
35 } // end namespace util
36 
37 #endif
Namespace for general, non-LArSoft-specific utilities.
Definition: PIDAAlg.h:26
std::string fOption
Definition: LArFFTWPlan.h:30
static std::mutex mutex_
Definition: LArFFTWPlan.h:26
LArFFTWPlan(int transformSize, const std::string &option)
Definition: LArFFTWPlan.cxx:6
unsigned int MapFFTWOption()
Definition: LArFFTWPlan.cxx:45