Jpp
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
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, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t, JDistance< typename JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type > > 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 JSupervisor supervisor_type
 

Public Member Functions

 JTransferFunction1D ()
 Default constructor. More...
 
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. More...
 
JOrdinate_t operator() (const JAbscissa_t x) const
 Get the function value including non-linearity. More...
 
result_type operator() (const argument_type x) const
 Function value evaluation. More...
 
virtual result_type evaluate (const argument_type *pX) const=0
 Recursive function value evaluation. More...
 
JSupervisor getSupervisor () const
 Get supervisor. More...
 
const JExceptionHandler & getExceptionHandler () const
 Get exception handler. More...
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions. More...
 

Static Public Member Functions

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

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 32 of file JCLBDefaultSimulator.hh.

Member Typedef Documentation

◆ JFunction1D_t

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

Definition at line 43 of file JCLBDefaultSimulator.hh.

◆ collection_type

typedef 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 939 of file JPolint.hh.

◆ abscissa_type

typedef 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 941 of file JPolint.hh.

◆ ordinate_type

typedef 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 942 of file JPolint.hh.

◆ value_type

typedef 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 943 of file JPolint.hh.

◆ distance_type

typedef 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 944 of file JPolint.hh.

◆ const_iterator

typedef 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 946 of file JPolint.hh.

◆ const_reverse_iterator

typedef 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 947 of file JPolint.hh.

◆ iterator

typedef 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 948 of file JPolint.hh.

◆ reverse_iterator

typedef 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 949 of file JPolint.hh.

◆ function_type

typedef 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 951 of file JPolint.hh.

◆ argument_type

typedef 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 953 of file JPolint.hh.

◆ result_type

typedef 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 954 of file JPolint.hh.

◆ exceptionhandler_type

typedef 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 955 of file JPolint.hh.

◆ functional_type

typedef 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 322 of file JFunctional.hh.

◆ supervisor_type

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

Definition at line 89 of file JFunctional.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited

Definition at line 320 of file JFunctional.hh.

320 { NUMBER_OF_DIMENSIONS = 1 };

Constructor & Destructor Documentation

◆ JTransferFunction1D()

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

Default constructor.

Definition at line 49 of file JCLBDefaultSimulator.hh.

50  {}

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,
__begin,
__end 
)
inline

Set the non-linearity function.

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

Definition at line 63 of file JCLBDefaultSimulator.hh.

68  {
69  // make CDF
70 
71  const int N = std::distance(__begin, __end);
72 
74 
75  for (T i = __begin; i != __end; ++i) {
76  X.push_back(*i);
77  }
78 
79  for (int i = 0, j = 1; j != N; ++i, ++j) {
80  X[j] += X[i];
81  }
82 
83  for (int i = 0; i != N; ++i) {
84  X[i] /= X[N-1];
85  }
86 
87 
89 
90  for (typename JFunction1D_t::iterator i = this->begin(); i != this->end(); ++i) {
91 
92  int j = 0;
93 
94  while (j != N && Xmin + X[j] * (Xmax - Xmin) < i->getX()) {
95  ++j;
96  }
97 
98  i->getY() = (JOrdinate_t) (Xmin + j * (Xmax - Xmin) / N);
99  }
100 
101  JFunction1D_t::compile();
102  }

◆ 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 111 of file JCLBDefaultSimulator.hh.

112  {
113  const long long int n = (long long int) (x / (this->getXmax() - this->getXmin()));
114  const JAbscissa_t x1 = x - n * (this->getXmax() - this->getXmin());
115 
116  return (JOrdinate_t) (x - x1) + JFunction1D_t::operator()(x1);
117  }

◆ 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 333 of file JFunctional.hh.

334  {
335  return this->evaluate(&x);
336  }

◆ 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 107 of file JFunctional.hh.

109  {
110  return function.evaluate(pX);
111  }

◆ 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 121 of file JFunctional.hh.

123  {
124  return value;
125  }

◆ getSupervisor()

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

Get supervisor.

Returns
supervisor

Definition at line 266 of file JFunctional.hh.

267  {
268  return supervisor;
269  }

◆ getExceptionHandler()

const JExceptionHandler& JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type , JOrdinate_t >::getExceptionHandler ( ) const
inlineinherited

Get exception handler.

Returns
exception handler

Definition at line 277 of file JFunctional.hh.

278  {
279  return *supervisor;
280  }

◆ setExceptionHandler()

void JTOOLS::JFunctional< 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 288 of file JFunctional.hh.

289  {
290  this->supervisor = supervisor;
291  }

Member Data Documentation

◆ supervisor

JSupervisor JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type , JOrdinate_t >::supervisor
protectedinherited

Definition at line 295 of file JFunctional.hh.


The documentation for this class was generated from the following file:
JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type, JOrdinate_t >::supervisor
JSupervisor supervisor
Definition: JFunctional.hh:295
JTOOLS::pX
pX
Definition: JPolint.hh:625
JTOOLS::JFunction1D< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type, JOrdinate_t >::NUMBER_OF_DIMENSIONS
Definition: JFunctional.hh:320
JTOOLS::n
const int n
Definition: JPolint.hh:628
std::vector
Definition: JSTDTypes.hh:12
JTOOLS::j
int j
Definition: JPolint.hh:634
distance
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition: PhysicsEvent.hh:434
JTOOLS::JFunctional< JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t > ::abscissa_type, JOrdinate_t >::evaluate
virtual result_type evaluate(const argument_type *pX) const=0
Recursive function value evaluation.
JTOOLS::make_grid
JGrid< JAbscissa_t > make_grid(const int nx, const JAbscissa_t Xmin, const JAbscissa_t Xmax)
Helper method for JGrid.
Definition: JGrid.hh:177
JTOOLS::configure
void configure(const T &value, const JAbstractCollection< JAbscissa_t > &bounds, JBool< false > option)
Configuration of value.
Definition: JToolsToolkit.hh:285
JTOOLS::JPolintFunction1D< 0, JTOOLS::JElement2D< JAbscissa_t, JOrdinate_t >, JTOOLS::JGridCollection, JOrdinate_t >::iterator
collection_type::iterator iterator
Definition: JPolint.hh:948