LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
pma::Element3D Class Referenceabstract

#include "PmaElement3D.h"

Inheritance diagram for pma::Element3D:
pma::Node3D pma::Segment3D

Public Member Functions

int TPC (void) const
 TPC index or -1 if out of any TPC. More...
 
int Cryo (void) const
 Cryostat index or -1 if out of any cryostat. More...
 
virtual double GetDistance2To (const TVector3 &p3d) const =0
 Distance [cm] from the 3D point to the object 3D. More...
 
virtual double GetDistance2To (const TVector2 &p2d, unsigned int view) const =0
 Distance [cm] from the 2D point to the object's 2D projection in one of wire views. More...
 
virtual pma::Vector3D GetDirection3D (void) const =0
 Get 3D direction cosines corresponding to this element. More...
 
virtual TVector3 GetUnconstrainedProj3D (const TVector2 &p2d, unsigned int view) const =0
 
virtual void SetProjection (pma::Hit3D &h) const =0
 
virtual double Length2 (void) const =0
 
double Length (void) const
 
const std::vector< pma::Hit3D * > & Hits (void) const
 
bool HasHit (const pma::Hit3D *h) const
 
pma::Hit3DHit (size_t index)
 
void RemoveHitAt (size_t index)
 
void AddHit (pma::Hit3D *h)
 
size_t NHits (void) const
 
size_t NEnabledHits (unsigned int view=geo::kUnknown) const
 
size_t NPrecalcEnabledHits (void) const
 
TVector3 const & ReferencePoint (size_t index) const
 
size_t NPoints (void) const
 
void AddPoint (TVector3 *p)
 
virtual void ClearAssigned (pma::Track3D *trk=0)
 
void UpdateHitParams (void)
 
void UpdateProjection (void)
 
void SortHits (void)
 
double SumDist2 (void) const
 
double SumDist2 (unsigned int view) const
 
double SumHitsQ (unsigned int view) const
 
unsigned int NHits (unsigned int view) const
 
unsigned int NThisHits (unsigned int view) const
 
double HitsRadius3D (unsigned int view) const
 
bool IsFrozen (void) const
 Check if the vertex 3D position is fixed. More...
 
void SetFrozen (bool state)
 Fix / relese vertex 3D position. More...
 
bool SelectRndHits (size_t nmax_per_view)
 
bool SelectAllHits (void)
 

Static Public Member Functions

static float OptFactor (unsigned int view)
 
static void SetOptFactor (unsigned int view, float value)
 

Protected Member Functions

 Element3D (void)
 
virtual double SumDist2Hits (void) const =0
 

Protected Attributes

int fTPC
 
int fCryo
 
bool fFrozen
 
std::vector< pma::Hit3D * > fAssignedHits
 
std::vector< TVector3 * > fAssignedPoints
 
size_t fNThisHits [3]
 
size_t fNThisHitsEnabledAll
 
size_t fNHits [3]
 
double fSumHitsQ [3]
 
double fHitsRadius
 

Static Protected Attributes

static float fOptFactors [3] = { 0.2F, 0.8F, 1.0F }
 

Detailed Description

Definition at line 27 of file PmaElement3D.h.

Constructor & Destructor Documentation

pma::Element3D::Element3D ( void  )
protected

Definition at line 21 of file PmaElement3D.cxx.

References fNHits, fNThisHits, fNThisHitsEnabledAll, and fSumHitsQ.

Referenced by SetOptFactor().

21  :
22  fTPC(-1), fCryo(-1),
23  fFrozen(false),
24  fHitsRadius(0)
25 {
27  for (unsigned int i = 0; i < 3; i++)
28  {
29  fNHits[i] = 0;
30  fNThisHits[i] = 0;
31  fSumHitsQ[i] = 0.0;
32  }
33 }
double fSumHitsQ[3]
Definition: PmaElement3D.h:118
size_t fNThisHits[3]
Definition: PmaElement3D.h:115
size_t fNHits[3]
Definition: PmaElement3D.h:117
size_t fNThisHitsEnabledAll
Definition: PmaElement3D.h:116
double fHitsRadius
Definition: PmaElement3D.h:119

Member Function Documentation

void pma::Element3D::AddHit ( pma::Hit3D h)
inline

Definition at line 65 of file PmaElement3D.h.

References fAssignedHits, and SetProjection().

Referenced by pma::Track3D::MakeProjection().

66  {
67  fAssignedHits.push_back(h);
68  SetProjection(*h);
69  }
virtual void SetProjection(pma::Hit3D &h) const =0
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
void pma::Element3D::AddPoint ( TVector3 *  p)
inline

Definition at line 77 of file PmaElement3D.h.

References ClearAssigned(), fAssignedPoints, and UpdateHitParams().

Referenced by pma::Track3D::MakeProjection().

77 { fAssignedPoints.push_back(p); }
std::vector< TVector3 * > fAssignedPoints
Definition: PmaElement3D.h:114
void pma::Element3D::ClearAssigned ( pma::Track3D trk = 0)
virtual

Clear hits/points vectors of this element, optionally only those which are owned by given track.

Reimplemented in pma::Node3D.

Definition at line 49 of file PmaElement3D.cxx.

References fAssignedHits, fAssignedPoints, and fHitsRadius.

Referenced by AddPoint().

50 {
51  fAssignedPoints.clear();
52  fAssignedHits.clear();
53  fHitsRadius = 0.0;
54 }
std::vector< TVector3 * > fAssignedPoints
Definition: PmaElement3D.h:114
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
double fHitsRadius
Definition: PmaElement3D.h:119
int pma::Element3D::Cryo ( void  ) const
inline

Cryostat index or -1 if out of any cryostat.

Definition at line 33 of file PmaElement3D.h.

References fCryo, GetDirection3D(), GetDistance2To(), GetUnconstrainedProj3D(), Length2(), and SetProjection().

Referenced by pma::ProjectionMatchingAlg::mergeTracks(), pma::Segment3D::Segment3D(), and pma::Track3D::Split().

33 { return fCryo; }
virtual pma::Vector3D pma::Element3D::GetDirection3D ( void  ) const
pure virtual

Get 3D direction cosines corresponding to this element.

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by Cryo(), and pma::Node3D::GetDirection3D().

virtual double pma::Element3D::GetDistance2To ( const TVector3 &  p3d) const
pure virtual

Distance [cm] from the 3D point to the object 3D.

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by Cryo(), pma::Track3D::GetNearestElement(), and SumDist2().

virtual double pma::Element3D::GetDistance2To ( const TVector2 &  p2d,
unsigned int  view 
) const
pure virtual

Distance [cm] from the 2D point to the object's 2D projection in one of wire views.

Implemented in pma::Node3D, and pma::Segment3D.

virtual TVector3 pma::Element3D::GetUnconstrainedProj3D ( const TVector2 &  p2d,
unsigned int  view 
) const
pure virtual

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by Cryo().

bool pma::Element3D::HasHit ( const pma::Hit3D h) const
inline

Definition at line 53 of file PmaElement3D.h.

References fAssignedHits.

54  {
55  for (const auto a : fAssignedHits) { if (h == a) return true; }
56  return false;
57  }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
pma::Hit3D& pma::Element3D::Hit ( size_t  index)
inline

Definition at line 59 of file PmaElement3D.h.

References fAssignedHits.

Referenced by pma::Track3D::AddNode(), pma::Track3D::DisableSingleViewEnds(), and pma::Track3D::SortHits().

59 { return *(fAssignedHits[index]); }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
const std::vector< pma::Hit3D* >& pma::Element3D::Hits ( void  ) const
inline

Definition at line 51 of file PmaElement3D.h.

References fAssignedHits.

51 { return fAssignedHits; }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
double pma::Element3D::HitsRadius3D ( unsigned int  view) const

Definition at line 224 of file PmaElement3D.cxx.

References pma::Dist2(), fAssignedHits, and fTPC.

Referenced by NThisHits().

225 {
226  if (fTPC < 0)
227  {
228  if (!fAssignedHits.empty()) mf::LogWarning("pma::Element3D") << "Hits assigned to TPC-crossing element.";
229  return 0.0F;
230  }
231 
232  TVector3 mean3D(0, 0, 0);
233  size_t nHits = 0;
234  for (auto h : fAssignedHits)
235  if (h->View2D() == view)
236  { mean3D += h->Point3D(); nHits++; }
237  if (!nHits) return 0.0;
238  mean3D *= (1.0 / nHits);
239 
240  double r2, maxR2 = 0.0;
241  for (auto h : fAssignedHits)
242  if (h->View2D() == view)
243  {
244  r2 = pma::Dist2(h->Point3D(), mean3D);
245  if (r2 > maxR2) maxR2 = r2;
246  }
247  return sqrt(maxR2);
248 }
double Dist2(const TVector2 &v1, const TVector2 &v2)
Definition: Utilities.cxx:19
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
bool pma::Element3D::IsFrozen ( void  ) const
inline

Check if the vertex 3D position is fixed.

Definition at line 96 of file PmaElement3D.h.

References fFrozen.

Referenced by pma::Track3D::AddNode(), and pma::ProjectionMatchingAlg::mergeTracks().

96 { return fFrozen; }
double pma::Element3D::Length ( void  ) const
inline
virtual double pma::Element3D::Length2 ( void  ) const
pure virtual

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by Cryo(), and Length().

size_t pma::Element3D::NEnabledHits ( unsigned int  view = geo::kUnknown) const

Definition at line 35 of file PmaElement3D.cxx.

References fAssignedHits, geo::kUnknown, and n.

Referenced by pma::Track3D::AddNode(), and NHits().

36 {
37  size_t n = 0;
38  for (size_t i = 0; i < fAssignedHits.size(); i++)
39  if (fAssignedHits[i]->IsEnabled() &&
40  ((view == geo::kUnknown) || (view == fAssignedHits[i]->View2D()))) n++;
41  return n;
42 }
Unknown view.
Definition: geo_types.h:83
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
Char_t n[5]
size_t pma::Element3D::NHits ( void  ) const
inline
unsigned int pma::Element3D::NHits ( unsigned int  view) const
inline

Definition at line 90 of file PmaElement3D.h.

References fNHits.

90 { return fNHits[view]; }
size_t fNHits[3]
Definition: PmaElement3D.h:117
size_t pma::Element3D::NPoints ( void  ) const
inline

Definition at line 76 of file PmaElement3D.h.

References fAssignedPoints.

Referenced by pma::Track3D::DisableSingleViewEnds().

76 { return fAssignedPoints.size(); }
std::vector< TVector3 * > fAssignedPoints
Definition: PmaElement3D.h:114
size_t pma::Element3D::NPrecalcEnabledHits ( void  ) const
inline

Definition at line 73 of file PmaElement3D.h.

References fNThisHitsEnabledAll.

Referenced by pma::Node3D::Mse().

73 { return fNThisHitsEnabledAll; }
size_t fNThisHitsEnabledAll
Definition: PmaElement3D.h:116
unsigned int pma::Element3D::NThisHits ( unsigned int  view) const
inline

Definition at line 91 of file PmaElement3D.h.

References fNThisHits, and HitsRadius3D().

91 { return fNThisHits[view]; }
size_t fNThisHits[3]
Definition: PmaElement3D.h:115
static float pma::Element3D::OptFactor ( unsigned int  view)
inlinestatic

Definition at line 103 of file PmaElement3D.h.

References fOptFactors.

Referenced by SumDist2(), pma::Segment3D::SumDist2Hits(), and pma::Node3D::SumDist2Hits().

103 { return fOptFactors[view]; }
static float fOptFactors[3]
Definition: PmaElement3D.h:121
TVector3 const& pma::Element3D::ReferencePoint ( size_t  index) const
inline

Definition at line 75 of file PmaElement3D.h.

References fAssignedPoints.

75 { return *(fAssignedPoints[index]); }
std::vector< TVector3 * > fAssignedPoints
Definition: PmaElement3D.h:114
void pma::Element3D::RemoveHitAt ( size_t  index)
inline

Definition at line 60 of file PmaElement3D.h.

References fAssignedHits.

61  {
62  if (index < fAssignedHits.size())
63  fAssignedHits.erase(fAssignedHits.begin() + index);
64  }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
bool pma::Element3D::SelectAllHits ( void  )

Definition at line 296 of file PmaElement3D.cxx.

References fAssignedHits.

Referenced by pma::Track3D::SelectHits(), SelectRndHits(), and SetFrozen().

297 {
298  bool changed = false;
299  for (auto h : fAssignedHits)
300  {
301  changed |= !(h->IsEnabled());
302  h->SetEnabled(true);
303  }
304  return changed;
305 }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
bool pma::Element3D::SelectRndHits ( size_t  nmax_per_view)

Definition at line 250 of file PmaElement3D.cxx.

References fAssignedHits, NHits(), and SelectAllHits().

Referenced by SetFrozen().

251 {
252  if (!nmax_per_view) { return SelectAllHits(); }
253 
254  size_t nhits[3];
255  for (size_t i = 0; i < 3; ++i) nhits[i] = NHits(i);
256 
257  int m[3], count[3];
258  bool state[3];
259  for (size_t i = 0; i < 3; ++i)
260  {
261  if (nhits[i] >= 2 * nmax_per_view)
262  {
263  m[i] = nhits[i] / nmax_per_view;
264  state[i] = true;
265  }
266  else if (nhits[i] > nmax_per_view)
267  {
268  m[i] = nhits[i] / (nhits[i] - nmax_per_view);
269  state[i] = false;
270  }
271  else { m[i] = 0; state[i] = false; }
272 
273  count[i] = 0;
274  }
275 
276  bool b, changed = false;
277  for (auto h : fAssignedHits)
278  {
279  b = h->IsEnabled();
280 
281  size_t view = h->View2D();
282  if (m[view])
283  {
284  if (count[view] % m[view] == 0) h->SetEnabled(state[view]);
285  else h->SetEnabled(!(state[view]));
286 
287  ++count[view];
288  }
289  else h->SetEnabled(true);
290 
291  changed |= (b != h->IsEnabled());
292  }
293  return changed;
294 }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
bool SelectAllHits(void)
size_t NHits(void) const
Definition: PmaElement3D.h:71
void pma::Element3D::SetFrozen ( bool  state)
inline

Fix / relese vertex 3D position.

Definition at line 98 of file PmaElement3D.h.

References fFrozen, SelectAllHits(), and SelectRndHits().

98 { fFrozen = state; }
static void pma::Element3D::SetOptFactor ( unsigned int  view,
float  value 
)
inlinestatic

Definition at line 104 of file PmaElement3D.h.

References Element3D(), fOptFactors, and fhicl::detail::atom::value().

Referenced by pma::ProjectionMatchingAlg::ProjectionMatchingAlg().

104 { fOptFactors[view] = value; }
static float fOptFactors[3]
Definition: PmaElement3D.h:121
std::string value(boost::any const &)
virtual void pma::Element3D::SetProjection ( pma::Hit3D h) const
pure virtual

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by AddHit(), Cryo(), and UpdateProjection().

void pma::Element3D::SortHits ( void  )

Definition at line 44 of file PmaElement3D.cxx.

References fAssignedHits.

Referenced by pma::Track3D::AddNode(), pma::Track3D::SortHits(), and UpdateProjection().

45 {
46  std::sort(fAssignedHits.begin(), fAssignedHits.end(), pma::bTrajectory3DOrderLess());
47 }
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
double pma::Element3D::SumDist2 ( void  ) const

Definition at line 171 of file PmaElement3D.cxx.

References d, fAssignedHits, fAssignedPoints, fTPC, GetDistance2To(), and SumDist2Hits().

Referenced by pma::Node3D::Mse(), and UpdateProjection().

172 {
173  if (fTPC < 0)
174  {
175  if (!fAssignedHits.empty()) mf::LogWarning("pma::Element3D") << "Hits assigned to TPC-crossing element.";
176  return 0.0F;
177  }
178 
179  double hit_sum = SumDist2Hits();
180 
181  if (fAssignedPoints.size())
182  {
183  double d, ref_sum = 0.0F;
184  for (auto p : fAssignedPoints)
185  {
186  d = sqrt( GetDistance2To(*p) ) - 0.5; // guide by ref points up to ~ 3D resolution
187  if (d > 0.0) ref_sum += d * d;
188  }
189  if (fAssignedHits.size())
190  {
191  ref_sum *= 0.2 * fAssignedHits.size() / fAssignedPoints.size();
192  }
193  hit_sum += ref_sum;
194  }
195 
196  return hit_sum;
197 }
std::vector< TVector3 * > fAssignedPoints
Definition: PmaElement3D.h:114
Float_t d
Definition: plot.C:237
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
virtual double GetDistance2To(const TVector3 &p3d) const =0
Distance [cm] from the 3D point to the object 3D.
virtual double SumDist2Hits(void) const =0
double pma::Element3D::SumDist2 ( unsigned int  view) const

Definition at line 199 of file PmaElement3D.cxx.

References fAssignedHits, fTPC, GetDistance2To(), geo::kUnknown, and OptFactor().

200 {
201  if (fTPC < 0)
202  {
203  if (!fAssignedHits.empty()) mf::LogWarning("pma::Element3D") << "Hits assigned to TPC-crossing element.";
204  return 0.0F;
205  }
206 
207  double hit_sum = 0.0F;
208  for (auto h : fAssignedHits)
209  {
210  if (h->IsEnabled())
211  {
212  unsigned int hitView = h->View2D();
213  if ((view == geo::kUnknown) || (view == hitView))
214  {
215  hit_sum += OptFactor(hitView) * // alpha_i
216  h->GetSigmaFactor() * // hit_amp / hit_max_amp
217  GetDistance2To(h->Point2D(), hitView); // hit_to_fit_dist^2
218  }
219  }
220  }
221  return hit_sum;
222 }
Unknown view.
Definition: geo_types.h:83
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
virtual double GetDistance2To(const TVector3 &p3d) const =0
Distance [cm] from the 3D point to the object 3D.
static float OptFactor(unsigned int view)
Definition: PmaElement3D.h:103
virtual double pma::Element3D::SumDist2Hits ( void  ) const
protectedpure virtual

Implemented in pma::Node3D, and pma::Segment3D.

Referenced by SumDist2().

double pma::Element3D::SumHitsQ ( unsigned int  view) const
inline

Definition at line 89 of file PmaElement3D.h.

References fSumHitsQ.

89 { return fSumHitsQ[view]; }
double fSumHitsQ[3]
Definition: PmaElement3D.h:118
void pma::Element3D::UpdateHitParams ( void  )

Definition at line 56 of file PmaElement3D.cxx.

References fAssignedHits, fHitsRadius, fNHits, fNThisHits, fNThisHitsEnabledAll, fSumHitsQ, pma::GetHitsRadius2D(), geo::kU, geo::kV, geo::kZ, pma::SortedObjectBase::Next(), pma::SortedObjectBase::NextCount(), and pma::SortedObjectBase::Prev().

Referenced by AddPoint().

57 {
58  std::vector< pma::Hit3D* > hitsColl, hitsInd1, hitsInd2;
59  for (size_t i = 0; i < 3; ++i) fNThisHitsEnabledAll = 0;
60  for (auto h : fAssignedHits)
61  {
62  if (h->IsEnabled()) fNThisHitsEnabledAll++;
63  switch (h->View2D())
64  {
65  case geo::kZ: hitsColl.push_back(h); break;
66  case geo::kV: hitsInd2.push_back(h); break;
67  case geo::kU: hitsInd1.push_back(h); break;
68  }
69  }
70  fNThisHits[0] = hitsInd1.size();
71  fNThisHits[1] = hitsInd2.size();
72  fNThisHits[2] = hitsColl.size();
73 
74  pma::SortedObjectBase const * chain = dynamic_cast< pma::SortedObjectBase* >(this);
75  pma::Element3D* el = 0;
76  for (size_t b = 0; b < chain->NextCount(); b++)
77  {
78  el = dynamic_cast< pma::Element3D* >(chain->Next(b));
79  if (el)
80  for (auto h : el->fAssignedHits)
81  {
82  switch (h->View2D())
83  {
84  case geo::kZ: hitsColl.push_back(h); break;
85  case geo::kV: hitsInd2.push_back(h); break;
86  case geo::kU: hitsInd1.push_back(h); break;
87  }
88  }
89  }
90  el = dynamic_cast< pma::Element3D* >(chain->Prev());
91  if (el)
92  {
93  for (auto h : el->fAssignedHits)
94  {
95  switch (h->View2D())
96  {
97  case geo::kZ: hitsColl.push_back(h); break;
98  case geo::kV: hitsInd2.push_back(h); break;
99  case geo::kU: hitsInd1.push_back(h); break;
100  }
101  }
102  }
103 
104  fHitsRadius = GetHitsRadius2D(hitsColl);
105  double r = GetHitsRadius2D(hitsInd2);
106  if (r > fHitsRadius) fHitsRadius = r;
107  r = GetHitsRadius2D(hitsInd1);
108  if (r > fHitsRadius) fHitsRadius = r;
109 
110  float amp, sigmaMax = 0.0F;
111  fSumHitsQ[0] = 0.0; fNHits[0] = hitsInd1.size();
112  for (size_t i = 0; i < hitsInd1.size(); i++)
113  {
114  amp = hitsInd1[i]->GetAmplitude();
115  if (amp > sigmaMax) sigmaMax = amp;
116  fSumHitsQ[0] += amp;
117  }
118  for (size_t i = 0; i < hitsInd1.size(); i++)
119  {
120  if (sigmaMax > 0.0F)
121  {
122  amp = hitsInd1[i]->GetAmplitude();
123  if (amp > 0.0F)
124  hitsInd1[i]->SetSigmaFactor((float)sqrt(amp / sigmaMax));
125  else hitsInd1[i]->SetSigmaFactor(0.01F);
126  }
127  else hitsInd1[i]->SetSigmaFactor(1.0F);
128  }
129 
130  sigmaMax = 0.0F;
131  fSumHitsQ[1] = 0.0; fNHits[1] = hitsInd2.size();
132  for (size_t i = 0; i < hitsInd2.size(); i++)
133  {
134  amp = hitsInd2[i]->GetAmplitude();
135  if (amp > sigmaMax) sigmaMax = amp;
136  fSumHitsQ[1] += amp;
137  }
138  for (size_t i = 0; i < hitsInd2.size(); i++)
139  {
140  if (sigmaMax > 0.0F)
141  {
142  amp = hitsInd2[i]->GetAmplitude();
143  if (amp > 0.0F)
144  hitsInd2[i]->SetSigmaFactor((float)sqrt(amp / sigmaMax));
145  else hitsInd2[i]->SetSigmaFactor(0.01F);
146  }
147  else hitsInd2[i]->SetSigmaFactor(1.0F);
148  }
149 
150  sigmaMax = 0.0F;
151  fSumHitsQ[2] = 0.0; fNHits[2] = hitsColl.size();
152  for (size_t i = 0; i < hitsColl.size(); i++)
153  {
154  amp = hitsColl[i]->SummedADC();
155  if (amp > sigmaMax) sigmaMax = amp;
156  fSumHitsQ[2] += amp;
157  }
158  for (size_t i = 0; i < hitsColl.size(); i++)
159  {
160  if (sigmaMax > 0.0F)
161  {
162  amp = hitsColl[i]->SummedADC();
163  if (amp > 0.0F)
164  hitsColl[i]->SetSigmaFactor((float)sqrt(amp / sigmaMax));
165  else hitsColl[i]->SetSigmaFactor(0.01F);
166  }
167  else hitsColl[i]->SetSigmaFactor(1.0F);
168  }
169 }
double fSumHitsQ[3]
Definition: PmaElement3D.h:118
double GetHitsRadius2D(const std::vector< pma::Hit3D * > &hits, bool exact=false)
Definition: Utilities.cxx:78
Planes which measure V.
Definition: geo_types.h:77
Planes which measure Z direction.
Definition: geo_types.h:79
size_t fNThisHits[3]
Definition: PmaElement3D.h:115
Planes which measure U.
Definition: geo_types.h:76
virtual unsigned int NextCount(void) const
Definition: SortedObjects.h:46
size_t fNHits[3]
Definition: PmaElement3D.h:117
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113
size_t fNThisHitsEnabledAll
Definition: PmaElement3D.h:116
double fHitsRadius
Definition: PmaElement3D.h:119
virtual pma::SortedObjectBase * Prev(void) const
Definition: SortedObjects.h:44
virtual pma::SortedObjectBase * Next(unsigned int index=0) const
Definition: SortedObjects.h:45
void pma::Element3D::UpdateProjection ( void  )
inline

Definition at line 84 of file PmaElement3D.h.

References fAssignedHits, SetProjection(), SortHits(), and SumDist2().

84 { for (auto h : fAssignedHits) SetProjection(*h); }
virtual void SetProjection(pma::Hit3D &h) const =0
std::vector< pma::Hit3D * > fAssignedHits
Definition: PmaElement3D.h:113

Member Data Documentation

std::vector< TVector3* > pma::Element3D::fAssignedPoints
protected
int pma::Element3D::fCryo
protected

Definition at line 108 of file PmaElement3D.h.

Referenced by Cryo(), pma::Node3D::Node3D(), and pma::Segment3D::Segment3D().

bool pma::Element3D::fFrozen
protected
double pma::Element3D::fHitsRadius
protected
size_t pma::Element3D::fNHits[3]
protected

Definition at line 117 of file PmaElement3D.h.

Referenced by Element3D(), NHits(), and UpdateHitParams().

size_t pma::Element3D::fNThisHits[3]
protected

Definition at line 115 of file PmaElement3D.h.

Referenced by Element3D(), NThisHits(), and UpdateHitParams().

size_t pma::Element3D::fNThisHitsEnabledAll
protected

Definition at line 116 of file PmaElement3D.h.

Referenced by Element3D(), NPrecalcEnabledHits(), and UpdateHitParams().

float pma::Element3D::fOptFactors = { 0.2F, 0.8F, 1.0F }
staticprotected

Definition at line 121 of file PmaElement3D.h.

Referenced by OptFactor(), and SetOptFactor().

double pma::Element3D::fSumHitsQ[3]
protected

Definition at line 118 of file PmaElement3D.h.

Referenced by Element3D(), SumHitsQ(), and UpdateHitParams().

int pma::Element3D::fTPC
protected

The documentation for this class was generated from the following files: