Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t > Class Template Referenceabstract

Auxiliary class for a non-linear transfer function of TDC inside FPGA. More...

#include <JCLBDefaultSimulator.hh>

Inheritance diagram for JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >:
JTOOLS::JPolintFunction1D< 0, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t > JTOOLS::JPolintFunction< N, JElement_t, JCollection_t, JResult_t, JDistance_t > JTOOLS::JFunction1D< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t > JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t > JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >

Public Types

typedef JTOOLS::JPolintFunction1D< 0, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t > JFunction1D_t
 
typedef JTOOLS::JGridCollection< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JDistance< typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type > > collection_type
 
typedef collection_type::abscissa_type abscissa_type
 
typedef collection_type::ordinate_type ordinate_type
 
typedef collection_type::value_type value_type
 
typedef collection_type::distance_type distance_type
 
typedef collection_type::const_iterator const_iterator
 
typedef collection_type::const_reverse_iterator const_reverse_iterator
 
typedef collection_type::iterator iterator
 
typedef collection_type::reverse_iterator reverse_iterator
 
typedef JFunction1D< abscissa_type, JOrdinate_t > function_type
 
typedef function_type::argument_type argument_type
 
typedef function_type::result_type result_type
 
typedef function_type::JExceptionHandler exceptionhandler_type
 
enum  
 
typedef JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t > functional_type
 
typedef functional_type::JExceptionHandler JExceptionHandler
 
typedef JSupervisor supervisor_type
 

Public Member Functions

 JTransferFunction1D ()
 Default constructor.
 
template<class T >
void set (const int nx, const JAbscissa_t Xmin, const JAbscissa_t Xmax, T __begin, T __end)
 Set the non-linearity function.
 
JOrdinate_t operator() (const JAbscissa_t x) const
 Get the function value including non-linearity.
 
result_type operator() (const argument_type x) const
 Function value evaluation.
 
const JSupervisor & getSupervisor () const
 Get supervisor.
 
const JExceptionHandler & getExceptionHandler () const override
 Get exception handler.
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions.
 
virtual result_type evaluate (const argument_type *pX) const=0
 Recursive function value evaluation.
 

Static Public Member Functions

static result_type getValue (const JFunctional &function, const argument_type *pX)
 Recursive function value evaluation.
 
static JClass< result_type >::argument_type getValue (typename JClass< result_type >::argument_type value, const argument_type *pX)
 Termination of recursive function value evaluation.
 

Protected Attributes

JSupervisor __supervisor
 

Detailed Description

template<class JAbscissa_t, class JOrdinate_t>
class JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >

Auxiliary class for a non-linear transfer function of TDC inside FPGA.

Definition at line 28 of file JCLBDefaultSimulator.hh.

Member Typedef Documentation

◆ JFunction1D_t

template<class JAbscissa_t , class JOrdinate_t >
JTOOLS::JPolintFunction1D<0, JTOOLS::JElement2D<JAbscissa_t, JOrdinate_t>, JTOOLS::JGridCollection, JOrdinate_t> JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >::JFunction1D_t

Definition at line 39 of file JCLBDefaultSimulator.hh.

◆ collection_type

JTOOLS::JGridCollection<JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type>> JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::collection_type
inherited

Definition at line 1098 of file JPolint.hh.

◆ abscissa_type

collection_type::abscissa_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::abscissa_type
inherited

Definition at line 1100 of file JPolint.hh.

◆ ordinate_type

collection_type::ordinate_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::ordinate_type
inherited

Definition at line 1101 of file JPolint.hh.

◆ value_type

collection_type::value_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::value_type
inherited

Definition at line 1102 of file JPolint.hh.

◆ distance_type

collection_type::distance_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::distance_type
inherited

Definition at line 1103 of file JPolint.hh.

◆ const_iterator

collection_type::const_iterator JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::const_iterator
inherited

Definition at line 1105 of file JPolint.hh.

◆ const_reverse_iterator

collection_type::const_reverse_iterator JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::const_reverse_iterator
inherited

Definition at line 1106 of file JPolint.hh.

◆ iterator

collection_type::iterator JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::iterator
inherited

Definition at line 1107 of file JPolint.hh.

◆ reverse_iterator

collection_type::reverse_iterator JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::reverse_iterator
inherited

Definition at line 1108 of file JPolint.hh.

◆ function_type

JFunction1D<abscissa_type, JOrdinate_t> JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::function_type
inherited

Definition at line 1110 of file JPolint.hh.

◆ argument_type

function_type::argument_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::argument_type
inherited

Definition at line 1112 of file JPolint.hh.

◆ result_type

function_type::result_type JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::result_type
inherited

Definition at line 1113 of file JPolint.hh.

◆ exceptionhandler_type

function_type::JExceptionHandler JTOOLS::JPolintFunction1D< N, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance<typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type> >::exceptionhandler_type
inherited

Definition at line 1114 of file JPolint.hh.

◆ functional_type

JFunctional<JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t> JTOOLS::JFunction1D< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::functional_type
inherited

Definition at line 332 of file JFunctional.hh.

◆ JExceptionHandler

functional_type::JExceptionHandler JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::JExceptionHandler
inherited

Definition at line 235 of file JFunctional.hh.

◆ supervisor_type

JSupervisor JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::supervisor_type
inherited

Definition at line 237 of file JFunctional.hh.

Member Enumeration Documentation

◆ anonymous enum

Constructor & Destructor Documentation

◆ JTransferFunction1D()

template<class JAbscissa_t , class JOrdinate_t >
JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >::JTransferFunction1D ( )
inline

Default constructor.

Definition at line 45 of file JCLBDefaultSimulator.hh.

46 {}

Member Function Documentation

◆ set()

template<class JAbscissa_t , class JOrdinate_t >
template<class T >
void JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >::set ( const int nx,
const JAbscissa_t Xmin,
const JAbscissa_t Xmax,
T __begin,
T __end )
inline

Set the non-linearity function.

Parameters
nxnumber of elements
Xminlower limit
Xmaxupper limit
__beginbegin of weights
__endend of weights

Definition at line 59 of file JCLBDefaultSimulator.hh.

64 {
65 // make CDF
66
67 const int N = std::distance(__begin, __end);
68
70
71 for (T i = __begin; i != __end; ++i) {
72 X.push_back(*i);
73 }
74
75 for (int i = 0, j = 1; j != N; ++i, ++j) {
76 X[j] += X[i];
77 }
78
79 for (int i = 0; i != N; ++i) {
80 X[i] /= X[N-1];
81 }
82
83
84 JFunction1D_t::configure(JTOOLS::make_grid(nx, Xmin, Xmax));
85
86 for (typename JFunction1D_t::iterator i = this->begin(); i != this->end(); ++i) {
87
88 int j = 0;
89
90 while (j != N && Xmin + X[j] * (Xmax - Xmin) < i->getX()) {
91 ++j;
92 }
93
94 i->getY() = (JOrdinate_t) (Xmin + j * (Xmax - Xmin) / N);
95 }
96
97 JFunction1D_t::compile();
98 }
int j
Definition JPolint.hh:801
JGrid< JAbscissa_t > make_grid(const int nx, const JAbscissa_t Xmin, const JAbscissa_t Xmax)
Helper method for JGrid.
Definition JGrid.hh:209

◆ operator()() [1/2]

template<class JAbscissa_t , class JOrdinate_t >
JOrdinate_t JDETECTOR::JTransferFunction1D< JAbscissa_t, JOrdinate_t >::operator() ( const JAbscissa_t x) const
inline

Get the function value including non-linearity.

Parameters
xabscissa value
Returns
function value

Definition at line 107 of file JCLBDefaultSimulator.hh.

108 {
109 const long long int n = (long long int) (x / (this->getXmax() - this->getXmin()));
110 const JAbscissa_t x1 = x - n * (this->getXmax() - this->getXmin());
111
112 return (JOrdinate_t) (x - x1) + JFunction1D_t::operator()(x1);
113 }
const int n
Definition JPolint.hh:791

◆ operator()() [2/2]

result_type JTOOLS::JFunction1D< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::operator() ( const argument_type x) const
inlineinherited

Function value evaluation.

Parameters
xargument value
Returns
function value

Definition at line 343 of file JFunctional.hh.

344 {
345 return this->evaluate(&x);
346 }

◆ getSupervisor()

const JSupervisor & JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 290 of file JFunctional.hh.

◆ getExceptionHandler()

const JExceptionHandler & JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::getExceptionHandler ( ) const
inlineoverridevirtualinherited

Get exception handler.

Returns
exception handler

Implements JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >.

Definition at line 301 of file JFunctional.hh.

302 {
303 return *__supervisor.handler;
304 }

◆ setExceptionHandler()

void JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::setExceptionHandler ( const JSupervisor & supervisor)
inlineinherited

Set the supervisor for handling of exceptions.

Parameters
supervisorsupervisor

Definition at line 312 of file JFunctional.hh.

313 {
314 this->__supervisor = supervisor;
315 }

◆ evaluate()

virtual result_type JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::evaluate ( const argument_type * pX) const
pure virtualinherited

Recursive function value evaluation.

Parameters
pXpointer to abscissa values
Returns
function value

◆ getValue() [1/2]

static result_type JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::getValue ( const JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t > & function,
const argument_type * pX )
inlinestaticinherited

Recursive function value evaluation.

Parameters
functionfunction
pXpointer to abscissa values

Definition at line 103 of file JFunctional.hh.

105 {
106 return function.evaluate(pX);
107 }

◆ getValue() [2/2]

static JClass< result_type >::argument_type JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::getValue ( typename JClass< result_type >::argument_type value,
const argument_type * pX )
inlinestaticinherited

Termination of recursive function value evaluation.

Parameters
valueresult
pXpointer to abscissa values

Definition at line 117 of file JFunctional.hh.

119 {
120 return value;
121 }

Member Data Documentation

◆ __supervisor

JSupervisor JTOOLS::JFunction< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >::abscissa_type, JOrdinate_t >::__supervisor
protectedinherited

Definition at line 318 of file JFunctional.hh.


The documentation for this class was generated from the following file: