Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | 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, JFirst_t, JSecond_t > JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t)> 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. More...
 
JReturn_t operator() (JFirst_t first, JSecond_t second) const
 Function operation. More...
 
bool is_valid () const
 Check validity. More...
 
void reset ()
 Reset function adaptor helper. More...
 
void set (JReturn_t(*)(JFirst_t, JSecond_t)pf)
 Set function. More...
 
void open (const char *file_name)
 Open file. More...
 
void close ()
 Close file. More...
 
void initialise ()
 Initialise counter. More...
 
void attach (const JSharedCounter &object)
 Attach this counter to given shared counter object. More...
 
bool detach ()
 Detach. More...
 
const int getCount ()
 Get count. More...
 

Protected Member Functions

void get (const char *function_name)
 Get function with given name according to specific protocol. More...
 

Protected Attributes

void * handle
 
JReturn_t(*)(JFirst_t, JSecond_t) function
 
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 265 of file JReconstruction/JEvtToolkit.hh.

Member Typedef Documentation

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

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

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

Constructor & Destructor Documentation

JRECONSTRUCTION::JQualitySorter::JQualitySorter ( )
inline

Default constructor.

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

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

Member Function Documentation

template<class JReturn_t = void, class JFirst_t = void, class JSecond_t = void>
JReturn_t JEEP::JFunctionAdaptor< JReturn_t, JFirst_t, JSecond_t >::operator() ( JFirst_t  first,
JSecond_t  second 
) const
inlineinherited

Function operation.

Parameters
firstfirst argument
secondsecond argument
Returns
return value

Definition at line 372 of file JFunctionAdaptor.hh.

373  {
374  return this->function(first, second);
375  }
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
bool JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::is_valid ( ) const
inlineinherited

Check validity.

Returns
true if valid function; else false

Definition at line 52 of file JFunctionAdaptor.hh.

53  {
54  return (function != NULL);
55  }
void JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::reset ( )
inlineinherited

Reset function adaptor helper.

Definition at line 61 of file JFunctionAdaptor.hh.

62  {
63  if (detach()) {
64  close();
65  }
66 
67  function = NULL;
68  }
bool detach()
Detach.
void JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::set ( JReturn_t(*)(JFirst_t, JSecond_t)  pf)
inlineinherited

Set function.

Parameters
pfpointer to function

Definition at line 76 of file JFunctionAdaptor.hh.

77  {
78  reset();
79 
80  function = pf;
81  }
void JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::open ( const char *  file_name)
inlineinherited

Open file.

Parameters
file_namefile name

Definition at line 89 of file JFunctionAdaptor.hh.

90  {
91  reset();
92 
93  handle = dlopen(file_name, RTLD_LAZY);
94 
95  if (!handle) {
96  THROW(JLANG::JFileOpenException, dlerror());
97  }
98 
99  initialise();
100  }
Exception for opening of file.
Definition: JException.hh:342
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
void initialise()
Initialise counter.
void JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::close ( )
inlineinherited

Close file.

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

Definition at line 108 of file JFunctionAdaptor.hh.

109  {
110  if (handle != NULL) {
111  dlclose(handle);
112  }
113 
114  handle = NULL;
115  }
void JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::get ( const char *  function_name)
inlineprotectedinherited

Get function with given name according to specific protocol.

Parameters
function_namefunction name

Definition at line 212 of file JFunctionAdaptor.hh.

213  {
214  function = NULL;
215 
216  if (handle != NULL) {
217 
218  dlerror(); // reset errors
219 
220  function = (pF) dlsym(handle, function_name);
221 
222  const char* error = dlerror();
223 
224  if (error != NULL) {
226  }
227 
228  } else {
229 
230  THROW(JLANG::JFileReadException, "Invalid handle.");
231  }
232  }
Exception for reading of file.
Definition: JException.hh:360
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
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  }
bool detach()
Detach.
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  }
bool detach()
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  }
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

void* JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::handle
protectedinherited

Definition at line 234 of file JFunctionAdaptor.hh.

JReturn_t(*)(JFirst_t, JSecond_t) JEEP::JFunctionAdaptorHelper< JReturn_t(*)(JFirst_t, JSecond_t) >::function
protectedinherited

Definition at line 235 of file JFunctionAdaptor.hh.

int* JLANG::JSharedCounter::counter
protectedinherited

Definition at line 94 of file JSharedCounter.hh.


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