Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
JRECONSTRUCTION::JQualitySorter Struct Reference

General purpose sorter of fit results. More...

#include <JEvtToolkit.hh>

Inheritance diagram for JRECONSTRUCTION::JQualitySorter:
JEEP::JFunctionAdaptor< JReturn_t, Args > JEEP::JFunctionAdaptorHelper< __pF__ > JLANG::JSharedCounter

Public Types

typedef JFunctionAdaptor< bool, const JFit &, const JFit & > function_adaptor_type
 
typedef function_adaptor_type::pF pF
 

Public Member Functions

 JQualitySorter ()
 Default constructor.
 
JReturn_t operator() (Args... args) const
 Function operation.
 
bool is_valid () const
 Check validity of function.
 
void reset ()
 Reset function adaptor helper.
 
void set (__pF__ pf)
 Set function.
 
void get (const char *symbol)
 Get function with given name according to specific protocol.
 
bool is_open () const
 Check if shared library file is open.
 
void open (const char *file_name)
 Open file.
 
void close ()
 Close file.
 
void load (const std::string &libso, const std::string &symbol)
 Load function from shared library.
 
void reload ()
 Reload function from shared library.
 
void initialise ()
 Initialise counter.
 
void attach (const JSharedCounter &object)
 Attach this counter to given shared counter object.
 
bool detach ()
 Detach.
 
const int getCount ()
 Get count.
 

Static Public Attributes

static const char SEPARATOR = ':'
 Separation character between library file name and function name.
 

Protected Attributes

void * handle
 
__pF__ function
 
std::string libso
 
std::string symbol
 
int * counter
 

Detailed Description

General purpose sorter of fit results.

The default constructor will sort fit results according the method JRECONSTRUCTION::qualitySorter.
A different method can dynamically be loaded from a (shared) library using class JEEP::JFunctionAdaptor. For the definition of an alternative method, see e.g. quality_sorter.cc

Definition at line 424 of file JReconstruction/JEvtToolkit.hh.

Member Typedef Documentation

◆ function_adaptor_type

Definition at line 427 of file JReconstruction/JEvtToolkit.hh.

◆ pF

typedef function_adaptor_type::pF JRECONSTRUCTION::JQualitySorter::pF

Definition at line 428 of file JReconstruction/JEvtToolkit.hh.

Constructor & Destructor Documentation

◆ JQualitySorter()

JRECONSTRUCTION::JQualitySorter::JQualitySorter ( )
inline

Default constructor.

Definition at line 434 of file JReconstruction/JEvtToolkit.hh.

434 :
436 {}
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
JFunctionAdaptor< bool, const JFit &, const JFit & > function_adaptor_type

Member Function Documentation

◆ operator()()

template<class JReturn_t = void, class ... Args>
JReturn_t JEEP::JFunctionAdaptor< JReturn_t, Args >::operator() ( Args... args) const
inlineinherited

Function operation.

Parameters
argsarguments
Returns
return value

Definition at line 346 of file JFunctionAdaptor.hh.

◆ is_valid()

template<class __pF__ >
bool JEEP::JFunctionAdaptorHelper< __pF__ >::is_valid ( ) const
inlineinherited

Check validity of function.

Returns
true if valid function; else false

Definition at line 56 of file JFunctionAdaptor.hh.

57 {
58 return (function != NULL);
59 }

◆ reset()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::reset ( )
inlineinherited

Reset function adaptor helper.

Definition at line 65 of file JFunctionAdaptor.hh.

66 {
67 if (detach()) {
68 close();
69 }
70
71 function = NULL;
72 }

◆ set()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::set ( __pF__ pf)
inlineinherited

Set function.

Parameters
pfpointer to function

Definition at line 80 of file JFunctionAdaptor.hh.

81 {
82 reset();
83
84 function = pf;
85 }
void reset()
Reset function adaptor helper.

◆ get()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::get ( const char * symbol)
inlineinherited

Get function with given name according to specific protocol.

Parameters
symbolfunction name

Definition at line 93 of file JFunctionAdaptor.hh.

94 {
95 function = NULL;
96
97 if (handle != NULL) {
98
99 dlerror(); // reset errors
100
101 function = (__pF__) dlsym(handle, symbol);
102
103 const char* error = dlerror();
104
105 if (error != NULL) {
106 THROW(JFileReadException, error);
107 }
108
109 } else {
110
111 THROW(JFileReadException, "Invalid handle.");
112 }
113 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.

◆ is_open()

template<class __pF__ >
bool JEEP::JFunctionAdaptorHelper< __pF__ >::is_open ( ) const
inlineinherited

Check if shared library file is open.

Returns
true if open; else false

Definition at line 121 of file JFunctionAdaptor.hh.

122 {
123 return (handle != NULL);
124 }

◆ open()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::open ( const char * file_name)
inlineinherited

Open file.

Parameters
file_namefile name

Definition at line 132 of file JFunctionAdaptor.hh.

133 {
134 reset();
135
136 handle = dlopen(file_name, RTLD_LOCAL | RTLD_LAZY);
137
138 if (!handle) {
139 THROW(JFileOpenException, dlerror());
140 }
141
142 initialise();
143 }
void initialise()
Initialise counter.

◆ close()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::close ( )
inlineinherited

Close file.

Note that the file should remain open as long as the library function is used.

Definition at line 151 of file JFunctionAdaptor.hh.

152 {
153 if (handle != NULL) {
154 dlclose(handle);
155 dlclose(handle);
156 }
157
158 handle = NULL;
159 }

◆ load()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::load ( const std::string & libso,
const std::string & symbol )
inlineinherited

Load function from shared library.

Parameters
libsofile name
symbolfunction name

Definition at line 168 of file JFunctionAdaptor.hh.

169 {
170 this->libso = libso;
171 this->symbol = symbol;
172
173 reload();
174 }
void reload()
Reload function from shared library.

◆ reload()

template<class __pF__ >
void JEEP::JFunctionAdaptorHelper< __pF__ >::reload ( )
inlineinherited

Reload function from shared library.

Definition at line 180 of file JFunctionAdaptor.hh.

181 {
182 open(libso.c_str());
183
184 get(symbol.c_str());
185 }
void get(const char *symbol)
Get function with given name according to specific protocol.
void open(const char *file_name)
Open file.

◆ initialise()

void JLANG::JSharedCounter::initialise ( )
inlineinherited

Initialise counter.

Definition at line 33 of file JSharedCounter.hh.

34 {
35 detach();
36
37 counter = new int(1);
38 }

◆ attach()

void JLANG::JSharedCounter::attach ( const JSharedCounter & object)
inlineinherited

Attach this counter to given shared counter object.

Parameters
objectshared counter

Definition at line 46 of file JSharedCounter.hh.

47 {
48 detach();
49
50 counter = object.counter;
51
52 if (counter != NULL) {
53 ++(*counter);
54 }
55 }

◆ detach()

bool JLANG::JSharedCounter::detach ( )
inlineinherited

Detach.

Returns
true if counter at zero; else false

Definition at line 63 of file JSharedCounter.hh.

64 {
65 if (counter != NULL) {
66
67 if (--(*counter) == 0) {
68
69 delete counter;
70
71 counter = NULL;
72
73 return true;
74 }
75
76 counter = NULL;
77 }
78
79 return false;
80 }

◆ getCount()

const int JLANG::JSharedCounter::getCount ( )
inlineinherited

Get count.

Returns
count

Definition at line 88 of file JSharedCounter.hh.

89 {
90 return (counter != NULL ? *counter : 0);
91 }

Member Data Documentation

◆ SEPARATOR

template<class __pF__ >
const char JEEP::JFunctionAdaptorHelper< __pF__ >::SEPARATOR = ':'
staticinherited

Separation character between library file name and function name.

Definition at line 39 of file JFunctionAdaptor.hh.

◆ handle

template<class __pF__ >
void* JEEP::JFunctionAdaptorHelper< __pF__ >::handle
protectedinherited

Definition at line 290 of file JFunctionAdaptor.hh.

◆ function

template<class __pF__ >
__pF__ JEEP::JFunctionAdaptorHelper< __pF__ >::function
protectedinherited

Definition at line 291 of file JFunctionAdaptor.hh.

◆ libso

template<class __pF__ >
std::string JEEP::JFunctionAdaptorHelper< __pF__ >::libso
protectedinherited

Definition at line 292 of file JFunctionAdaptor.hh.

◆ symbol

template<class __pF__ >
std::string JEEP::JFunctionAdaptorHelper< __pF__ >::symbol
protectedinherited

Definition at line 293 of file JFunctionAdaptor.hh.

◆ counter

int* JLANG::JSharedCounter::counter
protectedinherited

Definition at line 94 of file JSharedCounter.hh.


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