Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
LineWidthGenerator.h
Go to the documentation of this file.
1 
8 #ifndef RTSPECTROSCOPY_LINEWIDTHGENERATOR_H
9 #define RTSPECTROSCOPY_LINEWIDTHGENERATOR_H
10 
11 #include <Eigen/Core>
12 #include <vector>
13 
14 namespace Scine {
15 namespace Sparrow {
16 namespace RealTimeSpectroscopy {
17 
18 class Spectrum;
19 
21  public:
22  explicit LineWidthGenerator(const Spectrum& inputData);
23 
24  Spectrum generateLorentzianProfile(double resolution, double fwhm) const;
25 
26  private:
27  auto barplotFunction(const Eigen::VectorXd& waveNumbers, int normalModeIndex, double resolution) const;
28  auto lorentzFunction(double wavenumber, double intensity, double fwhm) const;
29  Eigen::VectorXd generateWavenumberXVector(double resolution, double fwhm) const;
30 
31  const Spectrum& inputSpectrum_;
32 };
33 
34 } // namespace RealTimeSpectroscopy
35 } // namespace Sparrow
36 } // namespace Scine
37 
38 #endif // RTSPECTROSCOPY_LINEWIDTHGENERATOR_H