\section{marlintpc\-:\-:Gaussian\-A\-D\-C\-Pulse Class Reference}
\label{classmarlintpc_1_1GaussianADCPulse}\index{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}}


A simple Gaussian shaping.  




{\ttfamily \#include $<$Gaussian\-A\-D\-C\-Pulse.\-h$>$}

Inheritance diagram for marlintpc\-:\-:Gaussian\-A\-D\-C\-Pulse\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1GaussianADCPulse}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf Gaussian\-A\-D\-C\-Pulse} (double frequency\-M\-Hz, double rise\-Time, double asymmetry, double n\-Electrons\-Dynamic\-Range, int A\-D\-C\-Max\-Value, int threshold)
\begin{DoxyCompactList}\small\item\em The constructor. \end{DoxyCompactList}\item 
void {\bf add} (double start\-Time, int n\-Electrons)
\begin{DoxyCompactList}\small\item\em Add signal from charge (n\-Electrons) arriving. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
double {\bf \-\_\-rise\-Time}\label{classmarlintpc_1_1GaussianADCPulse_a2fb34dc7bcf778f4afd2e72be022879f}

\begin{DoxyCompactList}\small\item\em Rise time of the pulse. \end{DoxyCompactList}\item 
double {\bfseries \-\_\-asym}\label{classmarlintpc_1_1GaussianADCPulse_abe367e3830ba56f6cdb18a0c99ad0623}

\item 
double {\bf \-\_\-sqrt2\-\_\-sigma}
\begin{DoxyCompactList}\small\item\em $\sqrt{2}\sigma$ is often needed during calculation, where \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A simple Gaussian shaping. 

The shaping is implemented as a Gaussian smearing, the left edge (-\/2 $\sigma$ from the centre of the Gaussian) is the time when the charge arrives. Afterwards the number of electrons arriving in the time bins is calculated by integrating the Gaussian within this time bin. An asymmetry can be assigned to the Gaussian to account for slower falling tails

Charge arriving at different times can be added to one pulse. However, there are two limitations to get proper results\-: \begin{DoxyItemize}
\item The (start) time of the new charge must not be later than the end of the charge already stored in the pulse. In this case the pulses would in reality be separated. The calling code has to check this, otherwise you will get an exception. \item The (start) time of the new charge must not be earlier than the start time of the existing pulse. Although the pulses might overlap in reality there is the problem that the data vector would have to be reorganised. The calling code can simply avoid this by sorting the charges by time before adding them. Like this it is also ensured that the overlap detection is working (correct end time of all charges that have arrived before).\end{DoxyItemize}
For convenience this class also holds the channel number. 

\subsection{Constructor \& Destructor Documentation}
\index{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}!Gaussian\-A\-D\-C\-Pulse@{Gaussian\-A\-D\-C\-Pulse}}
\index{Gaussian\-A\-D\-C\-Pulse@{Gaussian\-A\-D\-C\-Pulse}!marlintpc::GaussianADCPulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}}
\subsubsection[{Gaussian\-A\-D\-C\-Pulse}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse\-::\-Gaussian\-A\-D\-C\-Pulse (
\begin{DoxyParamCaption}
\item[{double}]{frequency\-M\-Hz, }
\item[{double}]{rise\-Time, }
\item[{double}]{asymmetry, }
\item[{double}]{n\-Electrons\-Dynamic\-Range, }
\item[{int}]{A\-D\-C\-Max\-Value, }
\item[{int}]{threshold}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1GaussianADCPulse_a03d62811fc8796ddac4fbdbb3032fd47}


The constructor. 


\begin{DoxyParams}{Parameters}
{\em frequency} & A\-D\-C readout frequency in M\-Hz \\
\hline
{\em rise\-Time} & The rise time of the pulse in ns \\
\hline
{\em asymmetry} & between width left and right of maximum\-: w\-\_\-left=asym$\ast$w\-\_\-right \\
\hline
{\em n\-Electrons\-Dynamic\-Range} & The number of electrons which correspond to the dynamic range of the A\-D\-C (A\-D\-C\-Max\-Value) \\
\hline
{\em A\-D\-C\-Max\-Value} & The dynamic range of the A\-D\-C in A\-D\-C counts \\
\hline
{\em threshold} & Minimum number auf A\-D\-C counts for a sample to be accepted.\par
 {\bfseries Attention\-:} A threshold of 0 turns off part of the zero suppression. 1 is the smallest reasonable value.\par
 The parameter intentionally is an int. It will be converted to float internally. \\
\hline
\end{DoxyParams}


References marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-\-A\-D\-C\-Charge\-Factor, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-\-A\-D\-C\-Max\-Value, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-frequency\-G\-Hz, \-\_\-sqrt2\-\_\-sigma, and marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-use\-Jitter.



\subsection{Member Function Documentation}
\index{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}!add@{add}}
\index{add@{add}!marlintpc::GaussianADCPulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}}
\subsubsection[{add}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse\-::add (
\begin{DoxyParamCaption}
\item[{double}]{start\-Time, }
\item[{int}]{n\-Electrons}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classmarlintpc_1_1GaussianADCPulse_af9794317d8d1ff9731f11e584190eb84}


Add signal from charge (n\-Electrons) arriving. 

at {\ttfamily start\-Time} to the pulse 

Implements {\bf marlintpc\-::\-A\-D\-C\-Pulse} \doxyref{}{p.}{classmarlintpc_1_1ADCPulse_aec84a44253426af2320fd23dcf31e86e}.



References marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-\-A\-D\-C\-Charge\-Factor, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-frequency\-G\-Hz, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-raw\-Data, \-\_\-rise\-Time, \-\_\-sqrt2\-\_\-sigma, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-start\-Bin, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-time\-Jitter, marlintpc\-::\-A\-D\-C\-Pulse\-::\-\_\-use\-Jitter, and marlintpc\-::\-A\-D\-C\-Pulse\-::get\-End\-Time().



\subsection{Member Data Documentation}
\index{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}!\-\_\-sqrt2\-\_\-sigma@{\-\_\-sqrt2\-\_\-sigma}}
\index{\-\_\-sqrt2\-\_\-sigma@{\-\_\-sqrt2\-\_\-sigma}!marlintpc::GaussianADCPulse@{marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse}}
\subsubsection[{\-\_\-sqrt2\-\_\-sigma}]{\setlength{\rightskip}{0pt plus 5cm}double marlintpc\-::\-Gaussian\-A\-D\-C\-Pulse\-::\-\_\-sqrt2\-\_\-sigma\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1GaussianADCPulse_abe6431531236034d3c1c5190e26b9410}


$\sqrt{2}\sigma$ is often needed during calculation, where 

$\sigma$ = rise\-Time / 3 is the width of the Gaussian 

Referenced by add(), and Gaussian\-A\-D\-C\-Pulse().



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Gaussian\-A\-D\-C\-Pulse.\-h\item 
Gaussian\-A\-D\-C\-Pulse.\-cc\end{DoxyCompactItemize}
