00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _PROPAGATIONPROPERTIESCALCULATOR_HPP_
00031 #define _PROPAGATIONPROPERTIESCALCULATOR_HPP_
00032
00033 #include "Hdf5DataReader.hpp"
00034
00035 #include <string>
00044 class PropagationPropertiesCalculator
00045 {
00046 private:
00048 Hdf5DataReader *mpDataReader;
00050 const std::string mVoltageName;
00051
00052
00053
00054 public:
00062 PropagationPropertiesCalculator(Hdf5DataReader *pDataReader,
00063 const std::string voltageName = "V");
00064 virtual ~PropagationPropertiesCalculator();
00065
00072 double CalculateMaximumUpstrokeVelocity(unsigned globalNodeIndex);
00073
00081 std::vector<double> CalculateAllMaximumUpstrokeVelocities(unsigned globalNodeIndex, double threshold);
00082
00090 std::vector<double> CalculateUpstrokeTimes(unsigned globalNodeIndex, double threshold);
00091
00104 double CalculateConductionVelocity(unsigned globalNearNodeIndex,
00105 unsigned globalFarNodeIndex,
00106 const double euclideanDistance);
00107
00120 std::vector<double> CalculateAllConductionVelocities(unsigned globalNearNodeIndex,
00121 unsigned globalFarNodeIndex,
00122 const double euclideanDistance);
00130 double CalculateActionPotentialDuration(const double percentage,
00131 unsigned globalNodeIndex);
00139 double CalculatePeakMembranePotential(unsigned globalNodeIndex);
00140
00148 std::vector<double> CalculateAllActionPotentialDurations(const double percentage,
00149 unsigned globalNodeIndex,
00150 double threshold);
00151
00152 };
00153
00154 #endif //_PROPAGATIONPROPERTIESCALCULATOR_HPP_