qupid 0.2
Quasi-Signal Generation Model for Pixelized Detector
Loading...
Searching...
No Matches
QPSignalGaussian.cpp
1#include "QPSignalGaussian.hpp"
2#include "QPMatrix.hpp"
3#include "QPMath.hpp"
4#include "QPVector.hpp"
5
6QPSignalGaussian::QPSignalGaussian(const QPVector& x0, const double& amplitude, const QPMatrix& S): QPSignalBase(amplitude), fx0(x0),fS(S){;}
7
8QPSignalGaussian::QPSignalGaussian(const double& x0, const double& y0, const double& amplitude, const double& sx, const double& sy, const double& srad): QPSignalBase(amplitude){
9 fx0 = QPVector(x0,y0);
10 fS = QPMatrix(2,2,4,sx,0,0,sy)*QPMath::RotationMatrix(srad);
11}
12
13double QPSignalGaussian::GetPDF(const double& x, const double& y){
14 QPVector X = QPVector(x,y);
15 return QPMath::Gaussian::MatrixForm2D(X, fx0, fS);
16}
Dense m×n matrix of double with hand-rolled linear algebra.
Definition QPMatrix.hpp:15
Abstract charge signal: a normalized 2D PDF scaled by an amplitude.
QPSignalGaussian(const QPVector &x0, const double &amplitude, const QPMatrix &S)
virtual double GetPDF(const double &x, const double &y)
Evaluates the covariance form above at (x, y).
3-component double vector with hand-rolled operations.
Definition QPVector.hpp:13
double MatrixForm2D(QPVector &x, QPVector &x0, QPMatrix &S)
2D Gaussian in covariance-matrix form,
Definition QPMath.cpp:56
QPMatrix RotationMatrix(double theta)
Counterclockwise 2D rotation matrix.
Definition QPMath.cpp:232