3 #include "Utilities/func/MathUtil.h" 38 if (xt_fit_valid && yt_fit_valid)
132 std::map<std::string, double>
mean = { {
"v", 0.0}, {
"z", 0.0}, {
"t", 0.0} };
137 TVector3 hit_vector(xyz);
139 mean.at(
"v") += geometry->
CellTpos(
hit->Plane(),
hit->Cell()) / N;
140 mean.at(
"z") += hit_vector.z() / N;
141 mean.at(
"t") +=
hit->TNS() / N;
144 std::map<std::string, double>
variance =
145 { {
"t", 0.0}, {
"vt", 0.0}, {
"zt", 0.0} };
150 TVector3 hit_vector(xyz);
152 double z = hit_vector.z();
153 double t =
hit->TNS();
155 variance.at(
"t") +=
get_variance(t, mean.at(
"t")) / (N - 1);
162 if (variance.at(
"t") == 0)
174 dvdt = variance.at(
"vt") / variance.at(
"t");
175 dzdt = variance.at(
"zt") / variance.at(
"t");
187 (
double const&
a,
double const& mean_a)
const 189 return (a - mean_a) * (a - mean_a);
195 (
double const& a,
double const& mean_a,
196 double const&
b,
double const& mean_b)
const 198 return (a - mean_a) * (b - mean_b);
double CellTpos(unsigned int ip, unsigned int ic, double w=0.0) const
unsigned int NCell(geo::View_t view) const
Number of cells in view view.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
const double SPEED_OF_LIGHT
rb::Cluster cluster() const
A collection of associated CellHits.
double get_variance(double const &a, double const &mean_a) const
const Var kY([](const caf::SRProxy *sr){float tmp=0.f;if(sr->mc.nu.empty()) return tmp;tmp=sr->mc.nu[0].y;return tmp;})
void CellInfo(unsigned int ip, unsigned int ic, View_t *view=0, double *pos=0, double *dpos=0) const
art::PtrVector< rb::CellHit > AllCells() const
Get all cells from both views.
virtual void Add(const art::Ptr< rb::CellHit > &cell, double weight=1)
TVector3 velocity() const
double dzdt(geo::View_t view) const
double pythag(double x, double y)
2D Euclidean distance
double get_covariance(double const &a, double const &mean_a, double const &b, double const &mean_b) const
double variance(Eigen::VectorXd x)
Encapsulate the geometry of one entire detector (near, far, ndos)
bool time_fit(Track2D const &track, double &dvdt, double &dzdt) const