EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
eicrecon::Helix Class Reference

#include <Helix.h>

Public Member Functions

 Helix (const double c, const double dip, const double phase, const edm4hep::Vector3f &o, const int h=-1)
 curvature, dip angle, phase, origin, h
 
 Helix (const edm4hep::Vector3f &p, const edm4hep::Vector3f &o, const double B, const int q)
 momentum, origin, b_field, charge
 
 Helix (const edm4eic::ReconstructedParticle &p, const double b_field)
 ReconstructParticle, b field.
 
 ~Helix ()=default
 
double dipAngle () const
 
double curvature () const
 
double phase () const
 1/R in xy-plane
 
double xcenter () const
 aziumth in xy-plane measured from ring center
 
double ycenter () const
 x-center of circle in xy-plane
 
int h () const
 y-center of circle in xy-plane
 
const edm4hep::Vector3f & origin () const
 -sign(q*B);
 
void setParameters (double c, double dip, double phase, const edm4hep::Vector3f &o, int h)
 starting point
 
void setParameters (const edm4hep::Vector3f &p, const edm4hep::Vector3f &o, const double B, const int q)
 
void setParameters (const edm4eic::TrackParameters &trk, const double b_field)
 edm4eic::TrackParameters, b field
 
double x (double s) const
 coordinates of helix at point s
 
double y (double s) const
 
double z (double s) const
 
edm4hep::Vector3f at (double s) const
 
double cx (double s) const
 pointing vector of helix at point s
 
double cy (double s) const
 
double cz (double s=0) const
 
edm4hep::Vector3f cat (double s) const
 
double period () const
 returns period length of helix
 
std::pair< double, double > pathLength (double r) const
 path length at given r (cylindrical r)
 
std::pair< double, double > pathLength (double r, double x, double y)
 path length at given r (cylindrical r, cylinder axis at x,y)
 
double pathLength (const edm4hep::Vector3f &p, bool scanPeriods=true) const
 path length at distance of closest approach to a given point
 
double pathLength (const edm4hep::Vector3f &r, const edm4hep::Vector3f &n) const
 path length at intersection with plane
 
double pathLength (double x, double y) const
 path length at distance of closest approach in the xy-plane to a given point
 
std::pair< double, double > pathLengths (const Helix &, double minStepSize=10 *edm4eic::unit::um, double minRange=10 *edm4eic::unit::cm) const
 path lengths at dca between two helices
 
double distance (const edm4hep::Vector3f &p, bool scanPeriods=true) const
 minimal distance between point and helix
 
bool valid (double world=1.e+5) const
 checks for valid parametrization
 
int bad (double world=1.e+5) const
 
void moveOrigin (double s)
 move the origin along the helix to s which becomes then s=0
 
void setCurvature (double)
 
void setPhase (double)
 performs also various checks
 
void setDipAngle (double)
 
double fudgePathLength (const edm4hep::Vector3f &) const
 value of S where distance in x-y plane is minimal
 
edm4hep::Vector3f momentum (double) const
 
edm4hep::Vector3f momentumAt (double, double) const
 
int charge (double) const
 
double curvatureSignedDistance (double x, double y)
 
double geometricSignedDistance (double x, double y)
 
double curvatureSignedDistance (const edm4hep::Vector3f &)
 
double geometricSignedDistance (const edm4hep::Vector3f &)
 
void Print () const
 

Static Public Attributes

static const double NoSolution = 3.e+33
 

Constructor & Destructor Documentation

◆ Helix() [1/3]

eicrecon::Helix::Helix ( const double  c,
const double  dip,
const double  phase,
const edm4hep::Vector3f &  o,
const int  h = -1 
)

curvature, dip angle, phase, origin, h

◆ Helix() [2/3]

eicrecon::Helix::Helix ( const edm4hep::Vector3f &  p,
const edm4hep::Vector3f &  o,
const double  B,
const int  q 
)

momentum, origin, b_field, charge

◆ Helix() [3/3]

eicrecon::Helix::Helix ( const edm4eic::ReconstructedParticle &  p,
const double  b_field 
)

ReconstructParticle, b field.

◆ ~Helix()

eicrecon::Helix::~Helix ( )
default

Member Function Documentation

◆ at()

edm4hep::Vector3f eicrecon::Helix::at ( double  s) const
inline

◆ bad()

int eicrecon::Helix::bad ( double  world = 1.e+5) const
inline

◆ cat()

edm4hep::Vector3f eicrecon::Helix::cat ( double  s) const
inline

◆ charge()

int eicrecon::Helix::charge ( double  B) const

◆ curvature()

double eicrecon::Helix::curvature ( ) const
inline

◆ curvatureSignedDistance() [1/2]

double eicrecon::Helix::curvatureSignedDistance ( const edm4hep::Vector3f &  pos)

◆ curvatureSignedDistance() [2/2]

double eicrecon::Helix::curvatureSignedDistance ( double  x,
double  y 
)

◆ cx()

double eicrecon::Helix::cx ( double  s) const
inline

pointing vector of helix at point s

◆ cy()

double eicrecon::Helix::cy ( double  s) const
inline

◆ cz()

double eicrecon::Helix::cz ( double  s = 0) const
inline

◆ dipAngle()

double eicrecon::Helix::dipAngle ( ) const
inline

◆ distance()

double eicrecon::Helix::distance ( const edm4hep::Vector3f &  p,
bool  scanPeriods = true 
) const

minimal distance between point and helix

◆ fudgePathLength()

double eicrecon::Helix::fudgePathLength ( const edm4hep::Vector3f &  p) const

value of S where distance in x-y plane is minimal

◆ geometricSignedDistance() [1/2]

double eicrecon::Helix::geometricSignedDistance ( const edm4hep::Vector3f &  pos)

◆ geometricSignedDistance() [2/2]

double eicrecon::Helix::geometricSignedDistance ( double  x,
double  y 
)

◆ h()

int eicrecon::Helix::h ( ) const
inline

y-center of circle in xy-plane

◆ momentum()

edm4hep::Vector3f eicrecon::Helix::momentum ( double  B) const

◆ momentumAt()

edm4hep::Vector3f eicrecon::Helix::momentumAt ( double  S,
double  B 
) const

◆ moveOrigin()

void eicrecon::Helix::moveOrigin ( double  s)

move the origin along the helix to s which becomes then s=0

◆ origin()

const edm4hep::Vector3f & eicrecon::Helix::origin ( ) const
inline

-sign(q*B);

◆ pathLength() [1/5]

double eicrecon::Helix::pathLength ( const edm4hep::Vector3f &  p,
bool  scanPeriods = true 
) const

path length at distance of closest approach to a given point

◆ pathLength() [2/5]

double eicrecon::Helix::pathLength ( const edm4hep::Vector3f &  r,
const edm4hep::Vector3f &  n 
) const

path length at intersection with plane

◆ pathLength() [3/5]

std::pair< double, double > eicrecon::Helix::pathLength ( double  r) const

path length at given r (cylindrical r)

◆ pathLength() [4/5]

std::pair< double, double > eicrecon::Helix::pathLength ( double  r,
double  x,
double  y 
)

path length at given r (cylindrical r, cylinder axis at x,y)

◆ pathLength() [5/5]

double eicrecon::Helix::pathLength ( double  x,
double  y 
) const
inline

path length at distance of closest approach in the xy-plane to a given point

◆ pathLengths()

std::pair< double, double > eicrecon::Helix::pathLengths ( const Helix h,
double  minStepSize = 10 * edm4eic::unit::um,
double  minRange = 10 * edm4eic::unit::cm 
) const

path lengths at dca between two helices

◆ period()

double eicrecon::Helix::period ( ) const

returns period length of helix

◆ phase()

double eicrecon::Helix::phase ( ) const
inline

1/R in xy-plane

◆ Print()

void eicrecon::Helix::Print ( ) const

◆ setCurvature()

void eicrecon::Helix::setCurvature ( double  val)

◆ setDipAngle()

void eicrecon::Helix::setDipAngle ( double  val)

◆ setParameters() [1/3]

void eicrecon::Helix::setParameters ( const edm4eic::TrackParameters &  trk,
const double  b_field 
)

edm4eic::TrackParameters, b field

◆ setParameters() [2/3]

void eicrecon::Helix::setParameters ( const edm4hep::Vector3f &  p,
const edm4hep::Vector3f &  o,
const double  B,
const int  q 
)

◆ setParameters() [3/3]

void eicrecon::Helix::setParameters ( double  c,
double  dip,
double  phase,
const edm4hep::Vector3f &  o,
int  h 
)

starting point

◆ setPhase()

void eicrecon::Helix::setPhase ( double  val)

performs also various checks

◆ valid()

bool eicrecon::Helix::valid ( double  world = 1.e+5) const
inline

checks for valid parametrization

◆ x()

double eicrecon::Helix::x ( double  s) const
inline

coordinates of helix at point s

◆ xcenter()

double eicrecon::Helix::xcenter ( ) const

aziumth in xy-plane measured from ring center

◆ y()

double eicrecon::Helix::y ( double  s) const
inline

◆ ycenter()

double eicrecon::Helix::ycenter ( ) const

x-center of circle in xy-plane

◆ z()

double eicrecon::Helix::z ( double  s) const
inline

Member Data Documentation

◆ NoSolution

const double eicrecon::Helix::NoSolution = 3.e+33
static

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