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 Pointposition () const
Pointposition ()
Point positionRelBeam () const
const Pointdirection () const
Pointdirection ()
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: