#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 22 of file FlashUtilities.h.
opdet::FlashUtilities::FlashUtilities |
( |
| ) |
|
|
inline |
float opdet::FlashUtilities::CompareByError |
( |
const FlashHypothesis & |
fh, |
|
|
const std::vector< float > & |
compare_vector, |
|
|
std::vector< float > & |
result_vector |
|
) |
| |
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 21 of file FlashUtilities.cxx.
25 if(compare_vector.size()!=fh.GetVectorSize())
26 throw std::runtime_error(
"ERROR in FlashUtilities Compare: Mismatching vector sizes.");
28 result_vector.resize(fh.GetVectorSize());
30 float result_total = 0;
32 std::vector<float>
const& NPEs_Vector(fh.GetHypothesisVector());
33 std::vector<float>
const& NPEs_ErrorVector(fh.GetHypothesisErrorVector());
35 for(
size_t i=0; i<fh.GetVectorSize(); i++){
36 result_total += compare_vector[i];
37 float diff = NPEs_Vector[i]-compare_vector[i];
38 if(
std::abs(diff)<std::numeric_limits<float>::epsilon())
40 else if(NPEs_ErrorVector[i] < std::numeric_limits<float>::epsilon())
41 result_vector[i] = diff / std::numeric_limits<float>::epsilon();
43 result_vector[i] = diff / NPEs_ErrorVector[i];
46 float total_error = fh.GetTotalPEsError();
47 float total_diff = fh.GetTotalPEs() - result_total;
48 if(
std::abs(total_diff) < std::numeric_limits<float>::epsilon() )
50 else if( total_error < std::numeric_limits<float>::epsilon() )
51 result_total = total_diff / std::numeric_limits<float>::epsilon();
53 result_total = total_diff / total_error;
float opdet::FlashUtilities::CompareByFraction |
( |
const FlashHypothesis & |
fh, |
|
|
const std::vector< float > & |
compare_vector, |
|
|
std::vector< float > & |
result_vector |
|
) |
| |
Definition at line 58 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 65 of file FlashUtilities.cxx.
69 if(compare_vector.size()!=NPEs_Vector.size())
70 throw std::runtime_error(
"ERROR in FlashUtilities Compare: Mismatching vector sizes.");
72 result_vector.resize(NPEs_Vector.size());
76 for(
size_t i=0; i<NPEs_Vector.size(); i++){
77 total_comp += compare_vector[i];
78 total_hyp += NPEs_Vector[i];
79 float diff = NPEs_Vector[i]-compare_vector[i];
80 if(
std::abs(diff)<std::numeric_limits<float>::epsilon())
82 else if(compare_vector[i] < std::numeric_limits<float>::epsilon())
83 result_vector[i] = diff / std::numeric_limits<float>::epsilon();
85 result_vector[i] = diff / compare_vector[i];
88 float result_total=0.0;
89 float total_diff = total_hyp - total_comp;
90 if(
std::abs(total_diff) < std::numeric_limits<float>::epsilon() )
92 else if( total_comp < std::numeric_limits<float>::epsilon() )
93 result_total = total_diff / std::numeric_limits<float>::epsilon();
95 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 100 of file FlashUtilities.cxx.
104 if(pe_vector.size()!=pos_vector.size())
105 throw std::runtime_error(
"ERROR in FlashUtilities GetPosition: Mismatchin vector sizes.");
107 float sum = std::accumulate(pe_vector.begin(),pe_vector.end(),0.0);
109 if(sum < std::numeric_limits<float>::epsilon()){
110 mean=0; rms=0;
return;
113 mean = std::inner_product(pe_vector.begin(),pe_vector.end(),pos_vector.begin(),0.0) / sum;
116 for(
size_t i=0; i<pe_vector.size(); i++)
117 rms += pe_vector[i]*(pos_vector[i] -
mean)*(pos_vector[i] -
mean);
119 rms = std::sqrt(rms)/sum;
double mean(const std::vector< short > &wf, size_t start, size_t nsample)
void opdet::FlashUtilities::GetPosition |
( |
const std::vector< float > & |
pe_vector, |
|
|
const std::vector< float > & |
pos_vector, |
|
|
double & |
mean, |
|
|
double & |
rms |
|
) |
| |
Definition at line 122 of file FlashUtilities.cxx.
128 mean = double(fmean);
void GetPosition(const std::vector< float > &, const std::vector< float > &, float &, float &)
double mean(const std::vector< short > &wf, size_t start, size_t nsample)
The documentation for this class was generated from the following files: