Jpp 20.0.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JACOUSTICS::JVelo Struct Reference

Vertex locator. More...

Inheritance diagram for JACOUSTICS::JVelo:
std::vector< JPosition3D >

Public Member Functions

 JVelo (const JAbstractSoundVelocity &V, const double RMax_m, const double Xv_m, const double factor=1.0)
 Constructor.
 
template<class T >
int operator() (const JVertex3D &vx, T __begin, T __end) const
 Check vertex.
 
template<class T >
vertex_type operator() (const JPosition3D &position, const hit_type &root, T __begin, T __end, const int numberOfHits=0) const
 Locate vertex around given position.
 

Public Attributes

const JAbstractSoundVelocityV
 
const double Tmax_s
 

Detailed Description

Vertex locator.

Definition at line 300 of file JAcousticsTriggerProcessor.cc.

Constructor & Destructor Documentation

◆ JVelo()

JACOUSTICS::JVelo::JVelo ( const JAbstractSoundVelocity & V,
const double RMax_m,
const double Xv_m,
const double factor = 1.0 )
inline

Constructor.

Parameters
Vsound velocity
RMax_mradius for generation of vertices [m]
Xv_mstep size for generation of vertices [m]
factormultiplication factor for corresponding time window

Definition at line 311 of file JAcousticsTriggerProcessor.cc.

314 :
315 V(V),
316 Tmax_s(factor * Xv_m / V())
317 {
318 this->push_back(JVector3D(0.0,0.0,0.0));
319
320 if (RMax_m > 0.0 && Xv_m > 0.0) {
321 for (double x = 0.5*Xv_m; x <= RMax_m; x += Xv_m) {
322 for (double y = 0.5*Xv_m; y <= RMax_m; y += Xv_m) {
323 if (x*x + y*y <= RMax_m*RMax_m) {
324 this->push_back(JVector3D(-x, +y, 0.0));
325 this->push_back(JVector3D(+x, +y, 0.0));
326 this->push_back(JVector3D(-x, -y, 0.0));
327 this->push_back(JVector3D(+x, -y, 0.0));
328 }
329 }
330 }
331 }
332 }
Data structure for vector in three dimensions.
Definition JVector3D.hh:36
const JAbstractSoundVelocity & V

Member Function Documentation

◆ operator()() [1/2]

template<class T >
int JACOUSTICS::JVelo::operator() ( const JVertex3D & vx,
T __begin,
T __end ) const
inline

Check vertex.

Parameters
vxvertex
__beginbegin of data
__endend of data
Returns
number of hits

Definition at line 344 of file JAcousticsTriggerProcessor.cc.

345 {
346 const JPosition3D& p0 = vx.getPosition();
347 const double t0 = vx.getT();
348
349 int n0 = 0;
350
351 for (T p = __begin; p != __end; ++p) {
352
353 const double t1 = p->getToA() - V.getTime(p0.getDistance(p->getPosition()), p0.getZ(), p->getZ());
354
355 if (fabs(t1 - t0) <= Tmax_s) {
356 n0 += 1;
357 }
358 }
359
360 return n0;
361 }
Data structure for position in three dimensions.
const JPosition3D & getPosition() const
Get position.
double getDistance(const JVector3D &pos) const
Get distance to point.
Definition JVector3D.hh:270
double getZ() const
Get z position.
Definition JVector3D.hh:115
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
Definition JVertex3D.hh:160
virtual double getTime(const double D_m, const double z1, const double z2) const =0
Get propagation time of sound.

◆ operator()() [2/2]

template<class T >
vertex_type JACOUSTICS::JVelo::operator() ( const JPosition3D & position,
const hit_type & root,
T __begin,
T __end,
const int numberOfHits = 0 ) const
inline

Locate vertex around given position.

Parameters
positionposition
rootroot hit
__beginbegin of data
__endend of data
numberOfHitsnumber of hits
Returns
vertex

Definition at line 375 of file JAcousticsTriggerProcessor.cc.

376 {
377 vertex_type vertex;
378
379 for (const_iterator i = this->cbegin(); i != this->cend(); ++i) {
380
381 const JPosition3D p0 = position + *i;
382 const double d0 = p0.getDistance(root.getPosition());
383 const double t0 = root.getToA() - V.getTime(d0, p0.getZ(), root.getZ());
384
385 int n0 = 1;
386 double q0 = root.getQ();
387
388 for (T p = __begin; p != __end && n0 + distance(p, __end) >= numberOfHits && n0 + distance(p, __end) >= vertex.N; ++p) {
389
390 const double d1 = p0.getDistance(p->getPosition());
391 const double t1 = p->getToA() - V.getTime(d1, p0.getZ(), p->getZ());
392
393 if (fabs(t1 - t0) <= Tmax_s) {
394 n0 += 1;
395 q0 += p->getQ();
396 }
397 }
398
399 if (q0 > vertex.Q) {
400 vertex = vertex_type(p0, t0, n0, q0);
401 }
402 }
403
404 return vertex;
405 }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition root.py:1

Member Data Documentation

◆ V

const JAbstractSoundVelocity& JACOUSTICS::JVelo::V

Definition at line 407 of file JAcousticsTriggerProcessor.cc.

◆ Tmax_s

const double JACOUSTICS::JVelo::Tmax_s

Definition at line 408 of file JAcousticsTriggerProcessor.cc.


The documentation for this struct was generated from the following file: