qupid 0.2
Quasi-Signal Generation Model for Pixelized Detector
Loading...
Searching...
No Matches
QPSignalBase.cpp
1#include "QPGeneral.hpp"
2#include "QPSignalBase.hpp"
3#include <iostream>
4
5QPSignalBase::QPSignalBase(const double& amplitude): fAmplitude(amplitude){
6 ;
7}
8
12
14
15double QPSignalBase::GetPDF(const double& x, const double& y){
16 std::cout<<"QPSignalBase::GetPDF - Calling pure function, return 0"<<std::endl;
17 return 0;
18}
19
20double QPSignalBase::GetSignal(const double& x, const double& y){
21 return GetPDF(x,y)*fAmplitude;
22}
23
24double QPSignalBase::Integral(const double& x0, const double& x1, const double& y0, const double& y1){
25 // int ndiv = qupid::NIntegrateDivide;
26 int ndiv = 5;
27 double ans = 0;
28
29 double sx = x0 + (x1-x0) / (2*ndiv);
30 double sy = y0 + (y1-y0) / (2*ndiv);
31
32 double dx = (x1-x0) / (ndiv);
33 double dy = (y1-y0) / (ndiv);
34
35 // std::cout<<sx << "\t" << sy << "\t" <<dx<< "\t" <<dy<<std::endl;
36 for(int i=0; i<ndiv; i++){
37 for(int j=0; j<ndiv; j++){
38 double x = dx*i+sx;
39 double y = dy*j+sy;
40 // std::cout<<x<<"\t"<<y<<"\t"<<GetSignal(x,y)<<std::endl;
41 ans += GetSignal(x,y);
42 }
43 }
44 return ans*dx*dy;
45
46}
virtual void Delete()
Cleanup hook called by the destructor; currently a no-op.
virtual double GetPDF(const double &x, const double &y)
Normalized PDF of the signal shape, 1/µm².
QPSignalBase(const double &amplitude)
double Integral(const double &x0, const double &x1, const double &y0, const double &y1)
Midpoint-rule integral of GetSignal over the rectangle : the rectangle is divided into an grid sampl...
double GetSignal(const double &x, const double &y)
Signal density : amplitude times GetPDF.
virtual ~QPSignalBase()
Calls Delete().