Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

ClusterData.h

00001 
00013 #ifndef CLUSTER_DATA_H
00014 #define CLUSTER_DATA_H
00015 
00016 #include <vector>
00017 #include <functional>  // for unary_function
00018 
00019 #include "PhotonInfo.h"
00020 #include "ClusterInfo.h"
00021 
00022 
00023 
00024 
00025 class ClusterData
00026 {
00027 public:
00031     ClusterData();
00032     
00033 
00037     const double triggerLikelihood(const std::vector<PhotonInfo> &photonData);
00038     
00039 private:
00043     void   calcAvgDistance();
00044 
00048     void   calcUseDistance();
00049 
00053     const double cosDistance(const long index1, const long index2) const;
00054 
00064     void   fillUseDistance(const long index);
00065 
00070     void   extractClusterData(const long chosenphot);
00071 
00075     const double jointLikelihood() const;
00076 
00080     const double likelihood(const double dist, const double dt, 
00081         const double psf) const;
00082 
00086     const double pdistValue(const double distance) const;
00087 
00091     const double pdtValue(const double deltaTime) const;
00092 
00096     const double psfValue(const double energy, const double denom) const;
00097 
00098     
00099     
00100     // Data members
00101     std::vector<PhotonInfo>           m_photonData;             
00102     std::vector<std::vector<double> > m_useDist;                
00103     std::vector<double>               m_avgDist;                
00104     std::vector<ClusterInfo>          m_extractedClusterData;   
00105     double                            m_jointLike;              
00106     
00107     
00108     
00112     struct greater_equal : public std::unary_function<ClusterInfo, ClusterInfo>
00113     {
00114         greater_equal(double value) : m_value(value) {}
00115         const bool operator() (ClusterInfo &x) const;
00116         
00117         double m_value;
00118     };
00119     
00120     
00124     struct less : public std::unary_function<ClusterInfo, ClusterInfo>
00125     {
00126         less(double value) : m_value(value) {}
00127         const bool operator() (ClusterInfo &x) const;
00128         
00129         double m_value;
00130     };
00131 };
00132 
00133 
00134 
00138 class distCmp
00139 {
00140 public:
00141     bool operator()(ClusterInfo &data1, ClusterInfo &data2)
00142     {
00143         return data1.dist() < data2.dist();    
00144     }
00145 };
00146 
00147 
00148 #endif

Generated on Mon Jan 27 11:43:32 2003 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001