#include <FlashUtilities.h>
|
| FlashUtilities () |
|
float | CompareByError (const FlashHypothesis &, const std::vector< float > &, std::vector< float > &) |
|
float | CompareByFraction (const FlashHypothesis &, const std::vector< float > &, std::vector< float > &) |
|
float | CompareByFraction (const std::vector< float > &, const std::vector< float > &, std::vector< float > &) |
|
void | GetPosition (const std::vector< float > &, const std::vector< float > &, float &, float &) |
|
void | GetPosition (const std::vector< float > &, const std::vector< float > &, double &, double &) |
|
Definition at line 21 of file FlashUtilities.h.
opdet::FlashUtilities::FlashUtilities |
( |
| ) |
|
|
inline |
Title: FlashUtilities Class Author: Wes Ketchum (wketc.nosp@m.hum@.nosp@m.lanl..nosp@m.gov)
Description: Class that contains utility functions for flash and flash hypotheses: — compare a flash hypothesis to a truth or reco vector — get an extent of a flash (central point, width) These classes should operate using simple objects, and will need other classes/functions to fill those vectors properly.
Definition at line 20 of file FlashUtilities.cxx.
24 if(compare_vector.size()!=fh.GetVectorSize())
25 throw std::runtime_error(
"ERROR in FlashUtilities Compare: Mismatching vector sizes.");
27 result_vector.resize(fh.GetVectorSize());
29 float result_total = 0;
31 std::vector<float>
const& NPEs_Vector(fh.GetHypothesisVector());
32 std::vector<float>
const& NPEs_ErrorVector(fh.GetHypothesisErrorVector());
34 for(
size_t i=0; i<fh.GetVectorSize(); i++){
35 result_total += compare_vector[i];
36 float diff = NPEs_Vector[i]-compare_vector[i];
37 if(
std::abs(diff)<std::numeric_limits<float>::epsilon())
39 else if(NPEs_ErrorVector[i] < std::numeric_limits<float>::epsilon())
40 result_vector[i] = diff / std::numeric_limits<float>::epsilon();
42 result_vector[i] = diff / NPEs_ErrorVector[i];
45 float total_error = fh.GetTotalPEsError();
46 float total_diff = fh.GetTotalPEs() - result_total;
47 if(
std::abs(total_diff) < std::numeric_limits<float>::epsilon() )
49 else if( total_error < std::numeric_limits<float>::epsilon() )
50 result_total = total_diff / std::numeric_limits<float>::epsilon();
52 result_total = total_diff / total_error;
Definition at line 57 of file FlashUtilities.cxx.
float CompareByFraction(const FlashHypothesis &, const std::vector< float > &, std::vector< float > &)
float opdet::FlashUtilities::CompareByFraction |
( |
const std::vector< float > & |
NPEs_Vector, |
|
|
const std::vector< float > & |
compare_vector, |
|
|
std::vector< float > & |
result_vector |
|
) |
| |
Definition at line 64 of file FlashUtilities.cxx.
68 if(compare_vector.size()!=NPEs_Vector.size())
69 throw std::runtime_error(
"ERROR in FlashUtilities Compare: Mismatching vector sizes.");
71 result_vector.resize(NPEs_Vector.size());
75 for(
size_t i=0; i<NPEs_Vector.size(); i++){
76 total_comp += compare_vector[i];
77 total_hyp += NPEs_Vector[i];
78 float diff = NPEs_Vector[i]-compare_vector[i];
79 if(
std::abs(diff)<std::numeric_limits<float>::epsilon())
81 else if(compare_vector[i] < std::numeric_limits<float>::epsilon())
82 result_vector[i] = diff / std::numeric_limits<float>::epsilon();
84 result_vector[i] = diff / compare_vector[i];
87 float result_total=0.0;
88 float total_diff = total_hyp - total_comp;
89 if(
std::abs(total_diff) < std::numeric_limits<float>::epsilon() )
91 else if( total_comp < std::numeric_limits<float>::epsilon() )
92 result_total = total_diff / std::numeric_limits<float>::epsilon();
94 result_total = total_diff / total_comp;
void opdet::FlashUtilities::GetPosition |
( |
const std::vector< float > & |
pe_vector, |
|
|
const std::vector< float > & |
pos_vector, |
|
|
float & |
mean, |
|
|
float & |
rms |
|
) |
| |
Definition at line 99 of file FlashUtilities.cxx.
103 if(pe_vector.size()!=pos_vector.size())
104 throw std::runtime_error(
"ERROR in FlashUtilities GetPosition: Mismatchin vector sizes.");
106 float sum = std::accumulate(pe_vector.begin(),pe_vector.end(),0.0);
108 if(sum < std::numeric_limits<float>::epsilon()){
112 mean = std::inner_product(pe_vector.begin(),pe_vector.end(),pos_vector.begin(),0.0) / sum;
115 for(
size_t i=0; i<pe_vector.size(); i++)
116 rms += pe_vector[i]*(pos_vector[i] -
mean)*(pos_vector[i] -
mean);
double rms(sqlite3 *db, std::string const &table_name, std::string const &column_name)
double mean(sqlite3 *db, std::string const &table_name, std::string const &column_name)
void opdet::FlashUtilities::GetPosition |
( |
const std::vector< float > & |
pe_vector, |
|
|
const std::vector< float > & |
pos_vector, |
|
|
double & |
mean, |
|
|
double & |
rms |
|
) |
| |
Definition at line 121 of file FlashUtilities.cxx.
127 mean = double(fmean);
double rms(sqlite3 *db, std::string const &table_name, std::string const &column_name)
void GetPosition(const std::vector< float > &, const std::vector< float > &, float &, float &)
double mean(sqlite3 *db, std::string const &table_name, std::string const &column_name)
The documentation for this class was generated from the following files: