ATLAS Offline Software
Loading...
Searching...
No Matches
FPTracker::Particle Class Reference

#include <Particle.h>

Inheritance diagram for FPTracker::Particle:
Collaboration diagram for FPTracker::Particle:

Public Member Functions

 Particle ()
 Particle (double x, double y, double z, double px, double py, double pz)
const Point & position () const
Point & position ()
Point positionRelBeam () const
const Point & direction () const
Point & direction ()
TransversePoint displacement () const
void setBeamCoordinateShift (const TransversePoint &)
void setBeamCoordinateShift (const IBeamElement *)
double z () const
double & z ()
double momentum () const
bool isOutOfAperture () const
TransversePoint transversePosition () const
std::string str () const
void updatePositionFromDisplacement (const TransversePoint &)
void setOutOfAperture (bool out)
void addMsg (const std::string &)

Private Attributes

Point m_position
TransversePoint m_beamCoordinateShift
double m_momentum
Point m_direction
bool m_outOfAperture
std::string m_msg

Detailed Description

Constructor & Destructor Documentation

◆ Particle() [1/2]

FPTracker::Particle::Particle ( )

◆ Particle() [2/2]

FPTracker::Particle::Particle ( double x,
double y,
double z,
double px,
double py,
double pz )

Definition at line 21 of file FPTracker/src/Particle.cxx.

21 :
22 m_position(x, y, z),
23 m_momentum(std::sqrt(px*px+py*py+pz*pz)),
26 }
#define y
#define x
static const double beamPipeRadius2

Member Function Documentation

◆ addMsg()

void FPTracker::Particle::addMsg ( const std::string & msg)
virtual

Implements FPTracker::IParticle.

Definition at line 60 of file FPTracker/src/Particle.cxx.

60{ m_msg += msg; }
MsgStream & msg
Definition testRead.cxx:32

◆ direction() [1/2]

Point & FPTracker::Particle::direction ( )
virtual

Implements FPTracker::IParticle.

Definition at line 53 of file FPTracker/src/Particle.cxx.

53{return m_direction;}

◆ direction() [2/2]

const Point & FPTracker::Particle::direction ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 52 of file FPTracker/src/Particle.cxx.

52{return m_direction;}

◆ displacement()

TransversePoint FPTracker::Particle::displacement ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 32 of file FPTracker/src/Particle.cxx.

32 {
33 return m_position.transverse()+m_beamCoordinateShift;
34 }

◆ isOutOfAperture()

bool FPTracker::Particle::isOutOfAperture ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 57 of file FPTracker/src/Particle.cxx.

57{return m_outOfAperture;}

◆ momentum()

double FPTracker::Particle::momentum ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 56 of file FPTracker/src/Particle.cxx.

56{return m_momentum;}

◆ position() [1/2]

Point & FPTracker::Particle::position ( )
virtual

Implements FPTracker::IParticle.

Definition at line 29 of file FPTracker/src/Particle.cxx.

29{ return m_position; }

◆ position() [2/2]

const Point & FPTracker::Particle::position ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 28 of file FPTracker/src/Particle.cxx.

28{ return m_position; }

◆ positionRelBeam()

Point FPTracker::Particle::positionRelBeam ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 30 of file FPTracker/src/Particle.cxx.

◆ setBeamCoordinateShift() [1/2]

void FPTracker::Particle::setBeamCoordinateShift ( const IBeamElement * be)
virtual

Implements FPTracker::IParticle.

Definition at line 45 of file FPTracker/src/Particle.cxx.

45 {
46 m_beamCoordinateShift = -1.*(be->position()).transverse();
47 }

◆ setBeamCoordinateShift() [2/2]

void FPTracker::Particle::setBeamCoordinateShift ( const TransversePoint & p)
virtual

◆ setOutOfAperture()

void FPTracker::Particle::setOutOfAperture ( bool out)
virtual

Implements FPTracker::IParticle.

Definition at line 59 of file FPTracker/src/Particle.cxx.

59{if(out){m_outOfAperture = true;}} //once out, always out

◆ str()

std::string FPTracker::Particle::str ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 61 of file FPTracker/src/Particle.cxx.

61 {
62 std::ostringstream ost;
63 ost<<"Part: pos:"<<std::setprecision(4)<<std::fixed<<std::boolalpha//<<std::right
64 <<" x "<<std::setw(9)<<std::setprecision(6)<<m_position.x()
65 <<" y "<<std::setw(9)<<m_position.y()
66 <<" z "<<std::setw(7)<<std::setprecision(2)<<m_position.z()
67 <<" dir "<<std::setprecision(6)
68 <<" xp "<<std::setw(9)<<m_direction.x()
69 <<" yp "<<std::setw(9)<<m_direction.y()
70 <<" zp "<<std::setw(9)<<m_direction.z()
71 << " mom: "<<std::setprecision(0)<<m_momentum
72 <<" lost "<<m_outOfAperture
73 <<" offx "<<std::setprecision(6)<<std::setw(9)<<m_beamCoordinateShift.x()
74 <<" offy "<<std::setprecision(6)<<std::setw(9)<<m_beamCoordinateShift.y()
75 <<'\n'
76 <<" xrb "<<std::setw(9)<<std::setprecision(6)<<this->positionRelBeam().x()
77 <<" yrb "<<std::setw(9)<<this->positionRelBeam().y()
78 <<" zrb "<<std::setw(7)<<std::setprecision(2)<<this->positionRelBeam().z();
79 if( not m_msg.empty() )
80 {
81 ost<<"\n msg " <<m_msg;
82 }
83 return ost.str();
84 }

◆ transversePosition()

TransversePoint FPTracker::Particle::transversePosition ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 49 of file FPTracker/src/Particle.cxx.

49 {
50 return m_position.transverse();
51 }

◆ updatePositionFromDisplacement()

void FPTracker::Particle::updatePositionFromDisplacement ( const TransversePoint & disp)
virtual

Implements FPTracker::IParticle.

Definition at line 36 of file FPTracker/src/Particle.cxx.

36 {
37 m_position[0] = disp[0] - m_beamCoordinateShift[0]; // when the disp from mag center = beam axis, part. position = 0 in global coor
38 m_position[1] = disp[1] - m_beamCoordinateShift[1];
39 }

◆ z() [1/2]

double & FPTracker::Particle::z ( )
virtual

Implements FPTracker::IParticle.

Definition at line 55 of file FPTracker/src/Particle.cxx.

55{return m_position[2];}

◆ z() [2/2]

double FPTracker::Particle::z ( ) const
virtual

Implements FPTracker::IParticle.

Definition at line 54 of file FPTracker/src/Particle.cxx.

54{return m_position.z();}

Member Data Documentation

◆ m_beamCoordinateShift

TransversePoint FPTracker::Particle::m_beamCoordinateShift
private

◆ m_direction

Point FPTracker::Particle::m_direction
private

◆ m_momentum

double FPTracker::Particle::m_momentum
private

◆ m_msg

std::string FPTracker::Particle::m_msg
private

◆ m_outOfAperture

bool FPTracker::Particle::m_outOfAperture
private

◆ m_position

Point FPTracker::Particle::m_position
private

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